To improve Software maintainability, the following principles should be followed:
1. "Open-Close" principle (OCP)
A software entity should be open to extensions and closed to modifications.
2. Lishi replacement principle (LSP)
Child types must be able to replace their base types, which in turn are not valid.
3. Dependency inversion principle (DIP)
It depends on abstraction, not on specifics.
The advantage is reduced coupling and improved scalability and stability.
4. Interface isolation principle (ISP)
It is better to use multiple interfaces than a single interface.
1) Use the delegate separation Interface
2) use the multi-inheritance isolation Interface
5. Principles of aggregation and reuse (CARP)
Use existing objects in a new object to make it a part of the new object. New objects can reuse existing functions by delegating these objects.
6. dummit's Law)
An object has as little knowledge as possible about other objects.