4 ms·
Separation of concerns, reuse, and modularity are the key principles here. I'm a fan of hybrid OO/functional approaches, use classes but minimize side effects.
by mpdehaan2 12y ago
Separation of concerns, reuse, and modularity are the key principles here.
I'm a fan of hybrid OO/functional approaches, use classes but minimize side effects. Return new objects when relevant, etc.
It's a mistake to misjudge OO based on some over-bloated java-design or some underdesigned implication.
The phrase "everything in moderation" largely applies.
Given, if you are doing things in C, and passing a structure as a first argument, you are getting most of the way there.
I think inheritance is frequently over-applied, interfaces are a great idea (or even just duck typing), but not everything is an inheritance hierachy.
Rather, encapsulation is the most powerful concept.
Much of what gives OO a good or bad name is in the hands of who is doing the architecture - abstracting things too early leads people to occasionally go to the extreme other side of the fence.
There's a balance to be had, and advantage to learning from multiple schools of thought.