Develpreneur Blog • Latest
Latest Posts
Fresh thinking, practical patterns, and lessons that compound — built for developers who want to ship, lead, and build momentum.
In this episode, we look at how to use static attributes and methods in our class design. These are important but can be over-used. They can even be a supported way to break the…
Software Design – Finding Balance With Coupling And Cohesion
We have spent a few episodes looking at cohesion and coupling. Now it is time to find balance in these two software design approaches. Each approach has strengths and weaknesses. Therefore, our best approach…
Coupling – A Smaller Object Approach To Software Solutions
In object-oriented software, we talk about the concept of coupling. Put simply; this is a small object approach to our solution. It is the opposite end of the spectrum from large-object, or monolithic, designs. …
Cohesion – A Big Object Approach To Design
This episode focuses on cohesion and the idea of using fewer large objects to solve a problem. This approach is often considered the opposite of using more smaller objects. We will find out that…
Cohesion and Coupling in Object-Oriented Design
Cohesion and coupling are options that are often discussed in object-oriented design circles. They are two ways to approach a solution. On the one hand, the solution can be a larger, self-contained approach. On…
Property Design In An Object-Oriented System
One of the most prevalent topics of consideration in an object-oriented system is property design. We can keep them simple or create more classes. The first approach is simpler and faster to implement. However,…
Class Relationships – When Has-A Shows a Relation
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 keep a…
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 can blur…
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” discussions. Not…
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. Thus, we…