OOP question
I often see OOP code written as thus:
Shape circle = new Circle();
circle.draw();
or...
Instrument clarient = new Clarinet();
clarinet.play();
The problem I have with this kind of code is that it doesn't accurately describe reality.
In reality, circles do not draw themselves. A shape manager draws a circle.
In reality, clarinets do not play themselves. An instrument manager plays a clarinet.
So wouldn't it be more correct to say -
ShapeManager sm = new ShapeManager();
sm.draw(new Circle());
or...
InstrumentManager im = new InstrumentManager();
im.play(new Clarinet());
Thoughts? Is one style preferable to the other? I am new to OOP.