principles:uniformity_principle
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
principles:uniformity_principle [2021-09-02 12:50] – old revision restored (2021-05-19 09:48) 65.21.179.175 | principles:uniformity_principle [2021-09-02 12:50] – old revision restored (2021-05-19 09:30) 65.21.179.175 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Uniformity Principle (UP) ====== | ||
===== Variants and Alternative Names ===== | ===== Variants and Alternative Names ===== | ||
Line 11: | Line 10: | ||
===== Principle Statement ===== | ===== Principle Statement ===== | ||
- | Solve similar problems the same way. | ||
===== Description ===== | ===== Description ===== | ||
Line 20: | Line 18: | ||
===== Strategies ===== | ===== Strategies ===== | ||
- | |||
- | * Use the same naming scheme everywhere | ||
- | * Use the same techniques and mechanisms everywhere | ||
- | * In similar methods use the same order of parameters | ||
- | ===== Caveats ===== | ||
- | |||
- | See section [[#contrary principles]]. | ||
Line 45: | Line 36: | ||
==== Generalizations ==== | ==== Generalizations ==== | ||
- | * [[Murphy' | ||
==== Specializations ==== | ==== Specializations ==== | ||
==== Contrary Principles ==== | ==== Contrary Principles ==== | ||
- | Note that UP can be contrary to virtually every other principle as it demands neglecting other principles in favor of uniformity. | + | |
- | + | ||
- | | + | |
- | * [[Model Principle]] (MP): UP may demand adhering to a certain naming scheme, which may not be best with respect to MP. See [[#example 1: naming schemes]]. | + | |
==== Complementary Principles ==== | ==== Complementary Principles ==== | ||
- | * [[Principle of Least Surprise]] | + | * [[principles: |
- | + | * [[principles: | |
+ | * [[principles:Easy to Use and Hard to Misuse]] | ||
==== Principle Collections ==== | ==== Principle Collections ==== | ||
Line 65: | Line 52: | ||
{{page> | {{page> | ||
- | + | ===== Example ===== | |
- | ===== Examples ===== | + | |
- | + | ||
- | ==== Example | + | |
- | + | ||
- | A typical example of the application of UP is the naming of method identifiers for common container classes like [[glossary: | + | |
- | + | ||
- | Stacks typically have the methods '' | + | |
- | + | ||
- | Queues on the other hand typically have the methods '' | + | |
- | + | ||
- | A third possibility is to find a common abstraction and to apply a very general naming scheme to all descendant classes (stack classes, queue classes and others). This is the way it is done in Eiffel((see Bertrand Meyer: // | + | |
principles/uniformity_principle.txt · Last modified: 2021-10-18 22:00 by christian