title: There is a Design Pattern related to this solution?
body: <p>There is a solution that I use frequently, I would like to know if there is an design pattern that is related to this solution:</p>
  
  <p>I want modify properties of an object, and i would like to separate each responsability in different classes and also be able to add/remove easier those responsabilities.</p>
  
  <p>There is Pattern to name this solution? It is a good solution or there is another pattern this fix it better? </p>
  
  <p>Thank you!</p>
  
  <pre><code>class Choice 
  {
      private $isSelected;
  
      private $isRight; 
  }
  
  class ChoiceModifierInterface
  {
      public function modify();
  }
  
  class Selector
  {
      public function modify(Choice $choice)
      {
          //check if the user select the question 
          $choice-&gt;isSelected(true);
      }
  }
  
  class Corrector
  {
  public function modify(Choice $choice)
      {
          //check if the question is right
          $choice-&gt;isRight(true);
      }
  }
  
  
  class ChoiceModifier
  {
      public function add(ModifierInterface $modifier)
      {
          //add classes
      }
  
      public function modify(Choice $choice)
      {
          foreach ($this-&gt;modifiers as $modifier)
          {
              $modifier-&gt;modify($choice);
          }
      }
  }
  
  class Client
  {
      public function main()
      {
          $choiceModifier = new ChoiceModifier();
          $choiceModifier-&gt;add(//add all modifiers);
  
          //run all modifiers
          $choiceModifier-&gt;modify($choice);
      }
  }
  </code></pre>