http://blog.csdn.net/horkychen/article/details/50486268
We all know that adherence to design principles is an important basis for developing high-quality software, but it is not easy to use in practice. Booch proposes four basic principles in << object-oriented analysis and design >>:
- Abstract core idea is the concept of invariance. Remove attributes that you don't care about, and reinforce important attributes to help people think about what to do.
- The core of the package is separation of concerns and information hiding, allowing the program to be reliably modified with minimal effort.
- The core idea of modularization is divide and conquer, each module should be high cohesion and low coupling.
- The core of the hierarchy is the classification and sequencing of abstractions that simplify the understanding of the system.
These concepts are relatively easy to understand, but the practical use is not simple. So <<refactoring for software Design smells:managing Technical debt>> (who has this resource on hand, can share it.) The authors use the so-called enabling technology (enabling techniques) to suggest practical recommendations for each principle: for details, see the original: How to apply design principles in practices.
How to practice design principles