Design maxims Equivalence

From CSSEMediaWiki
Jump to: navigation, search

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
Personal tools