Chapter 4. Facade

A great advantage of OO programming is that it helps keep applications from becoming monolithic programs with hopelessly interwoven pieces. An “application” in an OO system is, ideally, a minimal class that knits together the behaviors from reusable toolkits of other classes. A toolkit or subsystem developer often creates packages of well-designed classes without providing any applications that tie the classes together. The packages in the .NET FCL are generally like this; they are toolkits from which you can weave an endless variety of domain-specific applications.

The reusability of toolkits comes with a problem: The diverse applicability of classes in an OO subsystem may offer an oppressive variety of options. A developer who ...

Get Design Patterns in C# now with O’Reilly online learning.

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