Clean Code - Open Closed Principle (OCP)

De definitie van het OCP is: gesloten voor aanpassing, maar open voor verandering. Dit betekent dat als er een nieuwe feature komt, de bestaande code niet mag worden aangepast, maar alleen nieuw code wordt toegevoegd.

public class Mian()
{
  public string GetInput(input)
  {
    if(input == "keyboard") 
    {
      // do somthing
    }
    else if(input == "mouse") 
    {
      // do somthing
    }
  }
}
Deze code voldoet niet aan het SRP. Als bijvoorbeeld een joystick wordt toegevoegd moet de methode GetInput moet worden aanpast (= bestaande code). Om te voldoen aan het SRP moeten de uitbredibare componenten gescheiden worden door een interface. In dit voorbeeld betekent dit dat er een interface komt 'DeviceInput' en dat er per concreet input apparaat een separate class komt die erft van deze interface: KeyboardInputDevice, MouseInputDevice, etc. Op deze manier kan de joystick worden toegevoegd zonder dat de methode GetInput hoeft te worden aangepast.

Reacties

Populaire posts van deze blog

[SQL Server] varchar vs nvarchar

MS Sql 70-461: Chapter 5

[C#] Class serialiseren en deserialiseren