Home » Tag Archives: Design Patterns

Tag Archives: Design Patterns

Structural Design Patterns: Proxy Pattern

Previously we used the facade pattern in order to interact with a legacy application. Our next pattern would be the proxy pattern. The proxy pattern is used when we want Control the access to an object Add extra functionality when accessing an object. One of the most common usages is when we want to monitor specific actions and add some ...

Read More »

Structural Design Patterns: Facade Pattern

As developers most of the time we have to deal with complex systems, with many dependencies and even non existing documentation at all. In these situations finding a way to tackle those challenges is essential. The most common way to deal with it, is to hide all those dependencies and specify a front facing interface. The pattern to use in ...

Read More »

Structural Design Patterns: Decorator Pattern

Previously we altered the behaviour of our abstract objects using the bridge pattern and we implemented a tree like structure for our components using the composite pattern and delegating the requests. The decorator pattern allows behavior to be added to an individual object, either statically or dynamically, without affecting the behavior of other objects from the same class. So imagine ...

Read More »

Structural Design Patterns: Composite Pattern

Previously we checked the adapter pattern the use cases and the bridge pattern. The pattern we will examine in this post is the composite pattern. By following the composite pattern we “compose” objects into tree structures representing part-whole hierarchies, therefore clients can treat individual objects and compositions uniformly. By referencing the word hierarchies the first thing that comes to mind ...

Read More »

Structural Design Patterns: Bridge Pattern

On the previous post we had a look at the adapter pattern. On this blog we are going to use the bridge pattern. As mentioned by GOF the bright pattern usage is to “decouple an abstraction from its implementation so that the two can vary independently”. How this translates to a software problem? Imagine that you need to implement software ...

Read More »

Structural Design Patterns: Adapter Pattern

On previous blog posts we focused on creational design patterns such as the builder pattern, the abstract factory/factory pattern, the singleton and the prototype pattern. We will switch our focus to the structural design patterns. By using structural design patterns our goal is to ease the design by identifying a simple way to realize relationships between entities. Adapter pattern is ...

Read More »

Logic Should Hide In Plain Sight

I’m sure you’ve heard the words “dig in the code” before. It’s the first second thing a developer does when they are new on a project. They open the IDE, look for the app’s entry point and start ctrl+clicking until they find the “business logic”. Then, they start reading the code in order to understand how the puppets in the ...

Read More »

Should we always use TDD to design?

Can design emerge from TDD? Should we always use TDD to design software? Should we design upfront? How much design should we do and when? Those are common questions that often generate a lot of debate. People involved in those debates often have very different definitions of design and also the scope where it happens. It is difficult to have ...

Read More »

Design pressure on engineering team ?

How many times are you supporting or developing system and felt it could have been better designed? Move fast and break things culture in software has allowed engineering team to get product early to market but has created huge Tech Debt that team has struggled to come over. Engineering team is put under feature pressure to get the things done ...

Read More »