软件架构的七大设计原则

开闭原则(Open Close Principle)

开闭原则是指软件实体如类、模块、函数应该对扩展开放,对修改关闭。

强调的是用抽象构建框架,用实现扩展细节。

比如在一个稳定的软件系统中增加新的功能,若对原有的功能进行修改,那么可能带来很多的隐患,甚至降低原系统的稳定性,而如果只是在原有功能的基础上进行扩展,将会有效的降低对原有功能的影响,且利于后续的维护。

可以提高软件系统的可复用性、可维护性。

 

依赖倒置原则(Dependency Inversion Principle)

指的是高层模块不应该直接依赖于底层模块,二者都应依赖于其抽象。

抽象不依赖于实现,实现依赖于抽象。

具体实现可以通过依赖注入的方式进行使用。

这样可以有效的减少类与类之间的耦合,提高代码的可读性、可维护性,并能够降低修改程序带来的风险。

 

单一职责原则(Simple Responsibility Principle)

尽量避免一种以上可能导致软件中的类、对象、方法进行变更的因素。

可以有效的降低代码的复杂度,提高代码的可读性、可维护性。

 

接口隔离原则(Interface Segregation Principle)

接口的定义与使用应遵循的原则,尽量使用多个专用的接口,而不是单个由大量不相关的方法组成的接口,使实现减少依赖不需要的接口(方法)。

符合高内聚、低耦合的设计思想,可以有效的提高代码的可读性、可扩展性、可维护性。

 

迪米特法则(Law Of Demete)

指一个对象应对其它对象保持最少的了解。

举个例子:你是一家花店的老板,当你想知道当天的营业额时,无需你自己对当天售出的鲜花价格、数量等进行计算,只需要询问负责收银的员工即可得到结果,那么就降低了你想得到营业额的复杂度,由对应的人去处理对应的事物。对象之间也是如此,当你想要得到某个结果时,可以使用对应用于处理其的对象,而无需自身进行计算,可以有效的降低代码的复杂程度。

可以有效的降低类之间的耦合度。

 

里氏替换原则(Liskov Substitution Principle)

所有使用父类的地方都能透明的使用其子类替换,并且不会影响到原有的功能和逻辑。

强调了子类可以对父类的功能进行扩展,但是不能修改原有的功能。

 

合成复用原则(Composite/Aggregate Reuse Principle)

合成复用原则强调的是尽量使用对象组合(has-a)或对象聚合(contains-a),而不是使用继承关系来达到复用的目的。

避免滥用继承关系,可以使系统更加的灵活,降低类之间的耦合度,并且在修改其中的类时对其它类的影响会较小。

 

你可能感兴趣的:(Java,设计原则/设计模式)