架构设计六大原则:
单一职责、开放封闭、里氏替换、最少知识、接口隔离、依赖倒置
将以上六大原则的英文首字母拼在一起就是SOLID(稳定的),所以也称为SOLID原则。
一、单一职责原则
永远不应该有多于一个原因来改变某个类。
理解:对于一个类而言,应该仅有一个引起它变化的原因。
二、开放封闭原则
软件实体扩展应该是开发的,但对于修改应该是封闭的。
理解:对扩展开放,对修改封闭。可以去扩展类,但不要去修改类。
三、里氏替换原则
理解:父类一定能够被子类替换。
四、最少知识原则
只与你最直接的对象交流。
理解:高内聚,低耦合。做系统设计时,尽量减少依赖关系。
五、接口隔离原则
一个类与另一个类之间的依赖性,应该依赖于尽可能小的接口。
理解:不要对外暴露没有实际意义的接口。用户不应该依赖它不需要的接口。
六、依赖倒置原则
高层模块不应该依赖于低层模块,它们应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。
理解:应该面向接口编程,不应该面向实现类编程。
其他原则:
组合/聚合复用原则:当要扩展类的功能时,优先考虑使用组合,而不是继承。
无环依赖原则:A依赖B,B依赖C,C依赖A,此时出现循环依赖,设计中避免该问题,可以通过引入“中介者模式”解决。
共同封装原则:应该将易变的类放在同一个包里,将变化隔离出来。该原则时“开放封闭原则”的衍生。
共用重用原则:如果重用了包中的一个类,那么也就相当于重用了包中的所有类,我们要尽可能减小包的大小。
好莱坞原则:控制反转、依赖注入。不需要主动创建对象,而是由容器帮我们来创建并管理这些对象。
保持它的简单与傻瓜:保持系统界面简洁,功能实用,操作方便。
关注点分离:将一个复杂的问题分离为多个简单的问题,然后逐个解决。
你不需要它:不要一开始就把系统设计得非常复杂,不要陷入过度设计的深渊,让系统足够简单,而又不失扩展性。