Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Re^3: I dislike object-oriented programming in general

by doom (Deacon)
on Oct 23, 2007 at 21:27 UTC ( #646771=note: print w/ replies, xml ) Need Help??

in reply to Re^2: I dislike object-oriented programming in general
in thread I dislike object-oriented programming in general

This does sound like an example of using inheritence to fix someone else's design, but I was actually thinking about using it in the other direction: if there's some code that doesn't quite do what you need, it's sometimes very convienient to create a mutant variant by subclassing it... but if the original author was inheritence happy, you find yourself dealing with unwieldly chains of subclasses of subclasses where in order to understand what the class at the bottom does, you need to learn about all the parents all the way up the chain.

In your example, it sounds like I probably would've used "aggregation", i.e. move the common operations to methods in a new class, where the original code needs to create a "calculator handler object" (or somesuch) to access them. The advantage is that the new code is much more independant of the existing code (it has real "encapsulation").

Comment on Re^3: I dislike object-oriented programming in general

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://646771]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (5)
As of 2014-07-13 10:46 GMT
Find Nodes?
    Voting Booth?

    When choosing user names for websites, I prefer to use:

    Results (249 votes), past polls