Hi Ian, Thank you for replying
That is exactly what i am doing, I have a menuFactory that returns a list of context-sensitive menu items, the problem is still letting each menu item do something differently when clicked, based on the context.
Loading an Employee would use the menuFactory to Load menu items ("Add","Remove","Refresh")
Loading a Director would use the menuFactory to Load menu items ("Add", "Remove", "Refresh", "Pay")
Loading a Manager would use the menuFactory to load menu items ("Add", "Remove", "Refresh", "Manage")
As you can see the menu items "Add", "Remove" and "Refresh" is common throughout all concrete classes.
Yet when I click on "Add", it needs to add an entity based on the concrete class
Employee's Add item should add an employee
Director's add item should add a director
Manager's add item should add a manager
So the challange i'm facing is making the AddMenuItem object, behave differently, based on context.