1. Distribute messages (or requests) to different classes for processing: similar to front controler in MVC Architecture, write a handler class to distribute various messages, then, use the command mode for related processing.
A specific concrete command is returned using a simple factory, but different concrete commands are cached with hashtable or dictionary when each concrete command is created to reduce loading.ProgramSets and uses reflection to create a concrete command, resulting in performance consumption.
2. when processing a message (or request), how can we ensure that the message processing is not strongly coupled by dynamic and unknown subprocesses?
There are two solutions: You can use the observer mode, such as the application of event and delegate in the Asp.net module; you can also use the composit mode, but the height of the tree is 2.
3. Handle the changes in message processing in two directions: "Message Type Distribution" and "Message Processing plug-in" can also be designed in Bridge Mode.