1.“开-闭”原则(OCP)
Software entities should be open for extension, but closed for modification.
对扩展开放,对修改封闭。体会:多使用小接口。
2.里氏代换原则(LSP)
凡是基类适用的地方,子类一定适用。马,白马,黑马。马能用的地方,白马一定能用;反过来马不一定是白马。思考:运行期绑定(晚绑定)
3.依赖倒转原则(DIP)
要依赖抽象,不要依赖具体。 思考:和LSP相呼应,方便动态绑定。
4.迪米特法则(LoD)
一个对象应该对其他对象有尽可能少的了解。思考:不要和陌生人说话,直接和朋友交流,降低类与类之间的耦合。
5.接口隔离原则(ISP)
使用多个专门的接口比适用单一的接口要好。 思考:呼应开闭原则。一个大接口,实现它的类的负担会比较大。
6.合成/聚合复用原则(CARP)
要尽量使用合成/聚合,尽量不要使用继承。 思考:继承有时候是必须的,但是继承会造成数据量的迭代,降低性能。
Software entities should be open for extension, but closed for modification.
对扩展开放,对修改封闭。体会:多使用小接口。
2.里氏代换原则(LSP)
凡是基类适用的地方,子类一定适用。马,白马,黑马。马能用的地方,白马一定能用;反过来马不一定是白马。思考:运行期绑定(晚绑定)
3.依赖倒转原则(DIP)
要依赖抽象,不要依赖具体。 思考:和LSP相呼应,方便动态绑定。
4.迪米特法则(LoD)
一个对象应该对其他对象有尽可能少的了解。思考:不要和陌生人说话,直接和朋友交流,降低类与类之间的耦合。
5.接口隔离原则(ISP)
使用多个专门的接口比适用单一的接口要好。 思考:呼应开闭原则。一个大接口,实现它的类的负担会比较大。
6.合成/聚合复用原则(CARP)
要尽量使用合成/聚合,尽量不要使用继承。 思考:继承有时候是必须的,但是继承会造成数据量的迭代,降低性能。