Quantcast
Viewing latest article 19
Browse Latest Browse All 39

Answer by arminb for Does the Single Responsibility Principle work in OOP?

A class shall handle one topic, that's its single responsibility. A class Car could contain methods like startEngine() or attributes like weight:

class Car{    int weight;    void startEngine();    void stopEngine();}

Of course you can break up this class more. For example by defining a class for the engine:

class Engine{    start();    stop();}class Car{    Engine engine;    int weight;}

But you shall not define seperate classes for starting and stopping the engine like:

class EngineStop{    stop();}class EngineStart{    start();}class Car{    EngineStart engineStart;    EngineStop engineStop;    int weight;}

The principle says to break up classes as reasonable as possible to achieve abstractness. Abstracting too deep violates this principle.


Viewing latest article 19
Browse Latest Browse All 39

Trending Articles