title: Role Based Object-Oriented Design - Controller
body: <p>I'd like to implement a system that actually encompasses 3, each one varying in functionality by user role type. I.e. a system that allows users to perform different tasks based on their role type; role type determined right at user creation. The users cannot use their role to access other components / features of the system, and the UI is unique for each user.*</p>
  
  <p>I need these "systems" to act independently of each other, but I'm finding some common behavior (most often, opportunities for composition) across the board.</p>
  
  <p>Currently, I have 3 controllers, as this was the original intent of my design - RoleType1Controller, RoleType2Controller, RoleType3Controller. Obviously, these branch out independently, and touch the classes they need to touch.</p>
  
  <p>I'm preparing for some pretty large enhancements in functionality as soon as I get my feet off the ground and need to take these enhancements into consideration, as some of them will be co-driving points of the system. I.e. I want the system to do a couple things, all of equal importance, but can only implement one major feature at this time.</p>
  
  <p>Concerning the OOD, I'm thinking this "three systems in one" approach may be best suited for upcoming changes. However, these opportunities for composition and the desire to keep with standards of having a single controller is weighing heavily on my decision making process.</p>
  
  <p>Does anyone have experience with something like this or, if not, is experienced in OOD and can point me in the right direction? I'm building from the ground up, so (obviously) the framework of the system is being defined in this first iteration. I'd like it to be as robust and flexible as possible.</p>
  
  <p>Any help would be greatly appreciated.</p>
  
  <p>*I am NOT using the UI to drive my design process...I just thought this extra bit of information may be of some help.</p>