Structural Design Patterns



Provides a framework of modules that allow addition of functionality at a later date. 


Inheritance provides a very basic for extensibility. The extensibility pattern expands on this by dividing the project into modules.


There are several ways to accomplish the extisibility pattern. You can create modules that can be either instantiated by another module or included as part of an abstract class.


One example would be scripting. Dividing the problem up into individual units that can be plugged in as needed can significantly increase the ability to expand the system. One could also only load the modules that were needed for the specific task.


The extensibility pattern is not very well defined. It is close to a basic design principle but several sources separate it out as a specific pattern.