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 so-called enabling techniques (enabling techniques) to propose practical recommendations for each principle:
For more information, please see the original: How to apply design principles in practices.
How to practice design principles