title: Design Improvement
body: <p>Suppose that we have a UI with a <code>selectOneMenu</code>, which contains two items <code>basic</code> and <code>customized</code>. Let the  <code>class DocumentController</code> be responsible for generating PDF documents for the chosen type (<code>basic</code> or <code>customized</code>).</p>
  
  <p>It is clear that an extention of the UI( for instance new item) leads to a modification of the <code>class DocumentController</code>. Hence the <code>class DocumentController</code> violates the <strong>Open Closed principle</strong>, that implies that it also violates the <strong>Single Responsibility Principle</strong></p>
  
  <p>My approach for solving this problem based on the <strong>Chain of Responsibility Design Pattern</strong>, so I created for each item of <code>selectOneMenu</code> a separate class. Now the application is open for extensions but closed for modifications ans each class is responsible exactly for one thing.</p>
  
  <p>Now my question is how to manage disjoint and commen data of the new classes. Is  <strong>Chain of Responsibility Design Pattern</strong> suitable for this problem?</p>
  
  <p>Thank you for any suggests</p>