The Software Design Principles
Let's first list down these principles that were exposed(and followed) by the pattern-experts and the software-architects world-wide.
- Encapsulate what varies.
- Program to Interfaces, not to Implementation.
- Prefer Composition(or Containment) over Inheritance.
- Strive for a loosely coupled design (lower degree of mutual interdependence between the objects)
- The Open-Closed principle (The design should be open for extension, but closed for modification-requirement)
- The Dependency Inversion principle (Simply put, instead of client having to fret over the disparate Vendor-specific-APIs, force the vendors to follow a common Interface, which the client can simply program to.)
- Hollywood-Principle: "Don't call us, we'll call you!" (Let the abstract-class control how to call the methods implemented by the subclasses. Subclasses should have no business deciding the sequence of calls of peer-implemented-methods).
- The Single Responsibility Principle (The class should have one and only one reason to change).
- Minimum-Awareness-Principle(Law of Demeter): "Only talk to your immediate friends." (Never call a method on an object you got from another object).
- The Interface Segregation Principle: (Clients should not be forced to depend on the Interfaces that they don't use)

1 Comments:
You will not make it. levitra generique Logical question
Post a Comment
<< Home