Quantcast
Channel: User arminb - Stack Overflow
Viewing all articles
Browse latest Browse all 39

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

$
0
0

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 all articles
Browse latest Browse all 39

Trending Articles