- Floating Topic
-
Principles
-
Loose coupling
-
Types of coupling
- Common coupling
- External coupling
- Control coupling
- Stamp coupling (Data-structured coupling)
- Data coupling
- Message coupling (low)
- No coupling
- Content coupling (high)
-
Cohesion
-
Types of Cohesion
- Coincidental cohesion (worst)
- Logical cohesion
- Temporal cohesion
- Procedural cohesion
- Communicational cohesion
- Sequential cohesion
- Functional cohesion (best)
-
Principles
- Inappropriate Intimacy ( code smell)
- Law Of Demeter
- Tell, Don't Ask
- Say It Once and Only Once
-
Features or Concepts
- Abstraction
- Encapsulation
- Inheritance
- Polymorphism
-
Software Design
- Reliability
- Efficiency
- Maintainability
- Usability
-
GRASP
- Creator (Factory pattern)
-
Information Expert (Information hiding - abstraction+encapsulation)
- Floating Topic
- Controller (MVC)
- Low Coupling
- High Cohesion
- Polymorphism
- Pure Fabrication
- Indirection
- Protected Variations
- Dieter Rams’ Ten Principles Of Good Design Explained