CSC/ECE 517 Fall 2009/wiki3 13 b5
Principle of Explicit Interfaces
Definition
The Principle of Explicit Interfaces is proposed by Bertrand Meyer in his book Object-Oriented Software Construction. It states
Whenever two modules A and B communicate, this must be obvious from the text of A or B or both.
Motivation
The Principle of Explicit Interfaces refers to the attempt to ensure that relationships between separate modules are easily found and understood. This is important when considering making a change to the code base. It allows the programmer to quickly see what other modules his work might impact, preventing unintended side effects.
Interaction between modules, either by direct manipulation or by shared data, is an example of coupling. Coupling is a trait of object oriented software that should be avoided when possible, but when it is unavoidable the Principle of Explicit Interfaces should be used to make it as apparent as possible. This helps to reduce the impact that coupling may have.
Application
One area in which it may be difficult to implement interfaces while adhering to the principle of explicit interfaces is shared data. Bertrand Meyer recognizes this problem and diagrams it as:
This illustrates how two modules may interact in an indirect manner. Although the two modules do not directly interact on each other, by relying on a common resource changes to module A may impact how module B functions.
External Links
Notes on application architecture - In addition to a summary of the principle of explicit interfaces, this site has information on Meyer's other principles, and some other important criteria for good application design.
Object-Oriented Software Construction at Wikipedia - For more information on the text in which the principle was introduced.
Bertrand Meyer's home page - Find other publications and research by Meyer.
Sources
- Meyer, Bertrand. Object-Oriented Software Construction, 2nd edition p50. ISE Inc., Santa Barbara, CA, 1997.