Design maxims Equivalence
From CSSEMediaWiki
Many design maxims are based around the same principal. This page should highlight equivalent, and contradictory maxims. Maxim Equivalent Related Contradictory
Maxim | Equivalent | Related | Contradictory |
Acyclic dependencies principle | |||
Avoid downcasting | |||
Avoid equals | |||
Avoid inheritance for implementation | |||
Avoid side effects | Command query separation | ||
Behavioral completeness | |||
Big design up front | |||
Command query separation | Avoid side effects | ||
Common closure principle | |||
Common reuse principle | |||
Coupling and cohesion | |||
Dependency injection | |||
Dependency inversion principle | |||
Design by contract | |||
Don't burn your base class | |||
Don't expose mutable attributes | |||
Don't repeat yourself | |||
Do the simplest thing that could possibly work | |||
Encapsulate that which varies | |||
Encapsulation is hierarchical | |||
Encapsulation boundary | |||
Establishing priorities | |||
Fat interfaces | |||
Favor composition over inheritance | |||
Getters and setters | |||
Goto considered harmful | |||
Hide your decisions | |||
Impedance mismatch | |||
Information hiding | |||
Intelligent children pattern | |||
Interface segregation principle | |||
Keep accessors and mutators separate | |||
Keep it simple | |||
Law of Demeter | |||
Law of leaky abstractions | |||
Liskov substitution principle | |||
Model the real world | |||
Named constants | |||
No concrete base classes | |||
No silver bullet | |||
Once and only once | |||
One responsibility rule | |||
Open closed principle | |||
Option-operand separation | |||
Premature optimization | |||
Program to the interface not the implementation | |||
Reuse release equivalence principle | |||
Single responsibility principle | |||
Separation of concerns | |||
Single choice principle | |||
Software crisis | |||
Software reuse | |||
Stable abstractions principle | |||
Stable dependencies principle | |||
Tell, Don't Ask | |||
You ain't gonna need it |