© Dmitri Nesteruk 2019
Dmitri NesterukDesign Patterns in .NEThttps://doi.org/10.1007/978-1-4842-4366-4_8

8. Bridge

Dmitri Nesteruk1 
St. Petersburg, c.St-Peterburg, Russia

One very common situation that occurs when designing software is the so-called state space explosion, where the number of related entities required to represent all possible states explodes in a Cartesian product fashion. For example, if you have circles and squares of different colors, you might end up with classes such as RedSquare/BlueSquare/RedCircle/BlueCircle, and so on. Clearly nobody wants that.

What we do instead is connect things together, and there are different ways of doing that. For example, if object color is simply a trait, we create an enum. If color has mutable ...

Get Design Patterns in .NET: Reusable Approaches in C# and F# for Object-Oriented Software Design now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.