Jul 31, 2010
Just my thought on this. I don't see any issue with what you have presented. Thinking in terms of your code what areas are likely to change?
Just an observation. Your "GetModule" function seems to be fragile as that may change because that is a "switch" statement. Abstract that away to a factory and your design will adhere to the "OCP (Open/Closed)" principle as you add functionality without modifying or breaking existing code.
Your use of Strategy pattern for BL can be justified because you are just trying to abstract away the algorithms (in this case business rules) that varies. But if your BL are an extension of existing business rules you can combine that with "decorator" as well.
"Others can comment as well".
Some other thoughts:
Menus and actions can be tied up using the "Command" pattern as well.