1、设计模式与设计原则的关系
(1)、设计原则是指导思想,设计模式是实现手段。
(2)、设计原则的指导思想往往是高度概括性和原则性,设计模式往往只是其中一种实现方式,而并非唯一的实现方式。
(3)、设计模式,往往不仅仅采用一种设计原则,而是一些设计原则的整合。具体场景下突出和体现的设计原则也不尽相同。
(4)、设计原则在实际开发中并不能做到完全遵守,往往是打破一些原则,遵守一些原则,来实现设计的合理性。在考量该如何采用设计原则时候,通常要考虑业务功能、实现难度、系统性能、开发时间、空间利用等多方面因素。
2、面向对象常见的设计原则
(1)、单一职责原则SRP(Single Responsibility Principle)
一个类,应该仅有一个引起它变化的原因。也就是一个类,应该拥有单一的指责,如果多个职责耦合在一起会造成职责的相互影响,导致设计变得很脆弱。因为很难划分职责范围,所以这个原则也是最容易在开发中被打破的。
(2)、开闭原则OCP(Open-Closed Principle)
一个类应该对拓展开放,对修改关闭。是非常核心的一个原则。要求是,类的行为可拓展,而且是在不修改现有代码的前提下进行拓展。
开闭原则实现的关键在于,合理的抽象出、分离出变化与不变的部分。为变化部分预留下可拓展的方式,比如钩子方法,或动态组合对象等。
(3)、里氏替换原则LSP(Liskov Substitution Principle)
子类型必须能够替换掉它的父类型。
(4)、依赖倒置原则DIP(Denpendence Inversion Principle)
要依赖抽象,不要依赖具体类。
高层模块不应该依赖底层模块,二者都应该依赖于抽象。
抽象不应该依赖于具体实现,具体实现应该依赖于抽象。
高层一般需要处理业务逻辑,因此逻辑也许会更分散,但是公共的处理需要抽象。因此底层的实现,实际上是由高层的需求所控制的,因此,高层依赖的接口,应该由高层进行抽象,底层负责实现。接口的所有权应该属于高层。
(5)、接口隔离原则ISP(Interface Segregation Principle)
不应该强迫客户依赖他们不用的方法。
(6)、最少知识原则LKP(Least Knowledge Principle)
之和自己的朋友对话,从而减少对象之间的交互,松散类之间的耦合,降低类之间的相互依赖。
可以当作朋友的对象:
i、当前对象本身。
ii、通过参数传递进来的对象
iii、当前对象所创建的对象
iv、当前对象的实例变量所引用的对象
v、方法内所创建或实例化的对象。
(7)、其他原则
常见的其他原则:
i、面向接口编程
ii、优先使用组合而非继承
不常见的其他原则:
iii、一个类需要的数据应该隐藏在类的内部
iv、类之间应该零耦合,或者只有传导耦合。
v、在水平方向上尽可能统一地分布系统功能。
用吉祥物为企业赋能 | 让品牌更有趣
品牌设计/吉祥物策略/吉祥物形象设计/文创衍生品设计
电话:18026285918
ZUOART DESIGN © All Rights Reserved