Jason's Useful Links Page
From CSSEMediaWiki
(Difference between revisions)
(2 intermediate revisions by one user not shown) | |||
Line 20: | Line 20: | ||
|-valign="top" | |-valign="top" | ||
+ | |[[A class should not depend on its users]] | ||
+ | |||
+ | |[[Dependency inversion principle]] | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |-valign="top" | ||
+ | |[[Acyclic dependencies principle]] | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |-valign="top" | ||
+ | |[[Avoid becomes]] | ||
+ | | | ||
+ | |[[State]] | ||
+ | | | ||
+ | | | ||
+ | |||
+ | |||
+ | |||
+ | |-valign="top" | ||
+ | |[[Avoid downcasting]] | ||
+ | | | ||
+ | |[[Tell, don't ask]] | ||
+ | | | ||
+ | | | ||
+ | |||
+ | |-valign="top" | ||
+ | |[[Avoid equals]] | ||
+ | | | ||
+ | |[[Immutable object]] | ||
+ | | | ||
+ | | | ||
+ | |||
+ | |||
+ | |||
+ | |-valign="top" | ||
+ | |[[Avoid concrete base classes]] | ||
+ | | | ||
+ | |[[Avoid inheritance for implementation]] | ||
+ | |'''Heuristic 3.7''' [[Eliminate irrelevant classes]] | ||
+ | | | ||
+ | |-valign="top" | ||
+ | |[[Avoid no-op overrides]] | ||
+ | | | ||
+ | |[[Liskov substitution principle]], | ||
+ | [[Design by contract]] | ||
+ | | | ||
+ | |||
+ | |-valign="top" | ||
+ | |[[Avoid side effects]] | ||
+ | | | ||
+ | |[[Command query separation]], | ||
+ | [[Immutable object]] | ||
+ | | | ||
+ | |||
+ | |-valign="top" | ||
+ | |[[Behavioral completeness]] | ||
+ | |[[Define classes by behavior, not state pattern]], | ||
+ | [[Model the real world]] | ||
+ | |[[Single responsibility principle]], | ||
+ | [[Separation of concerns]] | ||
+ | | | ||
+ | |||
+ | |-valign="top" | ||
+ | |[[Beware singletons]] | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |||
+ | |||
+ | |||
+ | |-valign="top" | ||
+ | |[[Beware type switches]] '''heuristic 5.12''' | ||
+ | |[[Switch statements smell]] | ||
+ | |[[Strategy]] | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |||
+ | |-valign="top" | ||
+ | |bob | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |||
+ | |-valign="top" | ||
+ | |bob | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
|} | |} |
Latest revision as of 00:01, 6 October 2008