Develpreneur Blog • Latest
Latest Posts
Articles, lessons, and stories to help you build better developers—and a better career in technology.
Our language can blur the distinctions of class relationships in designing our solution. The “has-a” determination is often confused by how the English language can translate those words. We also have to…
Is A and Has A Concepts in Object-Oriented Design
The ideas of “is a” and “has a” are often discussed as part of object-oriented design. These concepts may seem simple and obvious. However, they can often be confused, and complex systems…
Granular Interfaces – How Much OO Is Practical?
The ideas of cohesion and coupling point us to paths that either place functionality in smaller or larger classes. We discuss granular interfaces in this episode as an introduction to those “right-sizing”…
Inheritance – Polymorphism In A Hierarchical Manner
We switch gears in this episode and start to look at inheritance. This is a core feature of object-oriented design and the most recognizable attribute. Child classes are utilized through polymorphic support. …
Interfaces – An Object-Oriented Contract For Usage
This episode, we look at interfaces. These are not supported by all languages. However, when they are supported, they are very useful. The interface specification allows us to provide language-based constraints for…
Flexibility in OOP – Build in hooks for change
One of the essential concepts to understand is flexibility in OOP. A good design requires the ability to extend it. There are ways to do this. However, they require us to incorporate…
Code Consistency – Critical For Practical Polymorphism
One of the challenges of good polymorphic design is code consistency. We are building a way to communicate with developers. Therefore, our language or syntax needs to be easy to understand. Likewise,…
Polymorphism Without Side Effects – Object-Oriented Clarity
We discussed in the previous episode how polymorphic behavior gives us a form of a common language for objects. Thus we need to consider the idea of polymorphism without side effects, so…
Polymorphism Overview – Reducing code size and a better user experience
We start the next series of episodes with a polymorphism overview. This is a core concept for proper object-oriented design. Likewise, we will dig into several practical ways to use this. Polymorphism…
Data Hiding – Practical Accessors
We have discussed the accessor levels of our data. In most environments, the three levels are public, protected, and private. In this episode, we go deeper into these concepts and a practical…