早上看到的一遍文章中提到,学习设计模式的主要思想也是学习一些设计的基本原则,对于我们考虑问题的边界是很有好处的。
这6大原则有:solid
s单一职责原则:一个类(接口)只负责一个领域中的功能或职责(https://blog.csdn.net/LoveLion/article/details/7536542)
o开闭原则:软件实体应对扩展开放,对修改关闭
l里式替换原则:所有引用基类对象的地方能够透明的使用其子类的对象。
i接口隔离原则:使用多个专门的接口,而不使用单一的总接口
d迪米特法则:一个软件实体应当尽可能少地与其他实体发生相互作用
依赖倒置原则:抽象不应该依赖于细节,细节应该依赖于抽象
合成复用原则:尽量使用对象的组合,而不是继承来达到复用的目的
https://blog.csdn.net/LoveLion/article/details/7536532 这篇文章中提到了面向对象设计原则概述
文章中提到,如何同时提高一个软件系统的可维护性和可复用性,是面向对象设计需要解决的核心问题之一。
单一职责原则中讲了一个类中包括数据库连接,创建 图表和展示图表,四个方法,无法达到复用的目的,而且引起类修改的原因不止一个,可以把四个方法拆解为三个类,一个类专门负责数据库连接,一个类负责查询用户信息,一个类负责图表的创建和展示,这样就实现了单一职责原则。
封闭开放原则:抽象化是开闭原则的关键
里式替换原则:所有引用父类的地方,都可以使用透明的使用其子类对象
依赖倒置原则:抽象不应该依赖于细节,细节应当依赖于抽象,换言之,要针对接口编程,而不是针对实现编程。
(如果说开闭原则是面向对象设计的目标的话,那么依赖倒转原则就是面向对象设计的主要实现机制之一,它是系统抽象化的具体实现。)
(开闭原则是目标,里氏代换原则是基础,依赖倒转原则是手段,它们相辅相成,相互补充,目标一致,只是分析问题时所站角度不同而已。)
接口隔离原则:我们应该依赖多个专一的接口,而不要使用一个单一的总接口
合成复用原则:尽量复用已有对象的功能,少用继承。多用复合,可以降低类与类之间的耦合度,一个类的变化对其他类的影响较小。黑箱复用和白箱复用,继承为白箱复用。
迪米特法则:又称为最少知识原则,一个软件实体应该尽可能少的与其他实体发生相互作用。迪米特法则可降低系统的耦合度,使类与类之间保持松散的耦合关系。