update once a week
单一职责原则(SRP) 就一个类而言,应该仅有一个引起它变化的原因
开放-封闭原则(The Open-Closeed Principle, OCP),软件实体(类、模块。函数等待)应该可以扩展,但是不能修改 OPEN TO EXTENDSION , CLOSE TO MODIFICATION
里氏代换原则 子类型必须能够替换掉它们的父类型 依赖倒转原则 抽象不应该依赖细节,细节应该依赖抽象;高层模块不应该依赖底层模块,两个都应该依赖抽象
迪米特法则,如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。类之间要松耦合,每一个类都应当尽量降低成员的访问权限
合成/聚合服复用原则 CARP ,尽量使用合成/聚合,尽量不要使用类继承 聚合 Aggregation 表示弱的“拥有”关系,体现的是A对象可以包含B对象,但是B对象不是A对象的一部分,比如大雁和雁群 合成 (组合)Composition 表示强的“拥有关系,体现了严格的部分和整体的关系,部分和整体的生命周期是一样的,比如大雁和翅膀