Module Facade

For the full description, implementation variations, consequences, and detailed sample, see Page 212 in Java Application Architecture.

Statement

Create a facade serving as a coarse-grained entry point to the modules underlying implementation.

Description

We create fine-grained and lightweight modules to increase module reuse. Unfortunately, fine-grained modules can also be difficult to use because the user must understand the API of several different modules and use them in conjunction with each other to accomplish a particular task. Additionally, lightweight modules must also be configured to an environmental context. Because of this, fine-grained and lightweight modules are generally more difficult to use. A Module Facade is useful to provide a higher level API that coordinates the work of a set of fine-grained modules.

ModuleFacade