Minimal public interface
From CSSEMediaWiki
(Difference between revisions)
(New page: Riel's Heuristic #2.4: [[Minimal public interface|Implement a minimal public interface that all classes understand [e.g., operations such as copy (deep versus shallow), equality testing, p...) |
|||
Line 12: | Line 12: | ||
</blockquote> | </blockquote> | ||
− | Riel then goes on to describe | + | Riel then goes on to describe a public interface that implements the following: |
*Constructor | *Constructor | ||
*Destructor | *Destructor | ||
Line 25: | Line 25: | ||
==References== | ==References== | ||
#{{Note|1}} Riel, A. J. 1996 ''Object-Oriented Design Heuristics.'' 1st. Addison-Wesley Longman Publishing Co., Inc. | #{{Note|1}} Riel, A. J. 1996 ''Object-Oriented Design Heuristics.'' 1st. Addison-Wesley Longman Publishing Co., Inc. | ||
+ | ==See Also== | ||
+ | *[[Design by contract]] | ||
+ | *[[Minimize number of methods]] | ||
+ | *[[Riel's heuristics]] | ||
+ | *[[Design maxims]] |
Revision as of 08:26, 7 October 2008
Riel's Heuristic #2.4: Implement a minimal public interface that all classes understand [e.g., operations such as copy (deep versus shallow), equality testing, pretty printing, parsing from an ASCII description, etc.].
Description
From chapter 2.2 in [1]:
If the classes that a developer designs and implements are to be reused by other developers in other applications, it is often useful to provide a common minimal public interface. This minimal public interface consists of functionality that can be reasonably expected from each and every class. The interface serves as a foundation for learning about the behaviors of classes in a reusable software base.
Chapter 9.5 continues with:
The minimal public interface gives users of a collection of reusable classes a basis for understanding the collection's architecture. Users come to expect a minimal functionality from anything they use in the collection.
Riel then goes on to describe a public interface that implements the following:
- Constructor
- Destructor
- Copying objects
- Deep
- Shallow
- Assigning objects
- Equality testing
- Parse
- Self-test
References
- ^ Riel, A. J. 1996 Object-Oriented Design Heuristics. 1st. Addison-Wesley Longman Publishing Co., Inc.