Minimal public interface
From CSSEMediaWiki
(Difference between revisions)
Line 1: | Line 1: | ||
− | + | :''Implement a minimal public interface which all classes understand (e.g. operations such as copy (deep versus shallow), equality testing, pretty printing, parsing from a ASCII description, etc.).'' --Riel's Heuristic 2.4, [[Arthur Riel 1996]] | |
==Description== | ==Description== | ||
− | + | Chapter 2.4 in [[Arthur Riel 1996]] states that: | |
<blockquote> | <blockquote> | ||
''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.'' | ''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.'' | ||
Line 23: | Line 23: | ||
*Parse | *Parse | ||
*Self-test | *Self-test | ||
− | + | ||
− | + | ||
==See Also== | ==See Also== | ||
*[[Design by contract]] | *[[Design by contract]] | ||
Line 30: | Line 29: | ||
*[[Riel's heuristics]] | *[[Riel's heuristics]] | ||
*[[Design maxims]] | *[[Design maxims]] | ||
+ | |||
+ | [[Category:Riel's heuristics]] |
Revision as of 23:29, 20 July 2009
- Implement a minimal public interface which all classes understand (e.g. operations such as copy (deep versus shallow), equality testing, pretty printing, parsing from a ASCII description, etc.). --Riel's Heuristic 2.4, Arthur Riel 1996
Description
Chapter 2.4 in Arthur Riel 1996 states that:
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