晋中网站公司,如何整合网站,银川住房和城乡建设局网站,国内wordpress 模板七大设计原则 文章目录 七大设计原则一、概述二、单一职责原则三、接口隔离原则四、依赖倒转原则五、里氏替换原则六、开闭原则七、迪米特法则八、合成复用原则 一、概述
设计模式是为了让程序(软件)#xff0c;具有更好代码重用性#xff0c;可读性#xff0c;可扩展性具有更好代码重用性可读性可扩展性可靠性。使程序呈现高内聚低耦合的特性。
设计模式原则其实就是程序员在编程时应当遵守的原则也是各种设计模式的基础(即: 设计模式为什么这样设计的依据)
单一职责原则接口隔离原则依赖倒转(倒置)原则里氏替换原则开闭原则迪米特法则合成复用原则
二、单一职责原则
一个类应该只负责一项职责如实体类实体类中不应进行其他业务操作。
举例比如在一个绘图系统中定义一个矩形类类中包含了长、宽同时定义了一个绘制矩形的方法在这个方法中难免要使用到GUI库的引用这会导致程序在加载矩形类的时候也消耗链接、编译时间、内存空间和存储空间等。其次在绘制矩阵方法中绘制方法中可能用到自定义的绘制方法当有需求要更改自定义的绘制方法时就强制要求将矩形类也要重新编译测试及部署。
职责的统一需要根据业务和需求来判断识别出同一种类型的职责这也是比较难的一点。
三、接口隔离原则
一个类对另一个类的依赖应该建立在最小的接口。
当一个类依赖于某个接口的部分方法而不是全部方法时应考虑将接口拆分而不是增加多余的空实现。
四、依赖倒转原则
依赖倒转(倒置)的中心思想是面向接口编程比如接收信息只依赖于接收信息接口在后续增加接收信息的方式时调用方无需修改代码即可无缝衔接
高层模块都不应依赖底层模块的实现而应只依赖于抽象抽象也不应该依赖于细节细节应该依赖于抽象使用接口或抽象类的目的是制定好规范而不涉及任何具体的操作把展现细节的任务交给他们的实现类去完成
依赖倒转原则是基于这样的设计理念相对于细节的多变性抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。在 java 中抽象指的是接口或抽象类细节就是具体的实现类
五、里氏替换原则
问题提出在编程中如何正确的使用继承? 里氏替换原则
继承包含这样一层含义父类中凡是已经实现好的方法实际上是在设定规范和契约虽然它不强制要求所有的子类必须遵循这些契约但是如果子类对这些已经实现的方法任意修改就会对整个继承体系造成破坏。
继承在给程序设计带来便利的同时也带来了弊端。比如使用继承会给程序带来侵入性程序的可移植性降低增加对象间的耦合性如果一个类被其他的类所继承则当这个类需要修改时必须考虑到所有的子类并且父类修改后所有涉及到子类的功能都有可能产生故障。
如果对每个类型为 T1 的对象 o1都有类型为 T2 的对象 o2使得以 T1 定义的所有程序 P 在所有的对象 o1 都代换成 o2 时程序 P 的行为没有发生变化那么类型 T2 是类型 T1 的子类型。换句话说所有引用基类的地方必须能透明地使用其子类的对象在使用继承时遵循里氏替换原则在子类中尽量不要重写父类的方法里氏替换原则告诉我们继承实际上让两个类耦合性增强了在适当的情况下可以通过 聚合组合依赖 来解决问题
六、开闭原则
开闭原则Open Closed Principle是编程中最基础、最重要的设计原则
一个软件实体如类模块和函数应该对扩展开放(对提供方)对修改关闭(对使用方)。用抽象构建框架用实现扩展细节即创建多个实现类实现不同细节。当软件需要变化时尽量通过扩展软件实体的行为来实现变化而不是通过修改已有的代码来实现变化。编程中遵循其它原则以及使用设计模式的目的就是遵循开闭原则。
七、迪米特法则
迪米特法有个简单的定义只与直接的朋友通信
直接的朋友每个对象都会与其他对象有耦合关系只要两个对象之间有耦合关系我们就说这两个对象之间是朋友关系。耦合的方式很多依赖关联组合聚合等。其中我们称出现成员变量方法参数方法返回值中的类为直接的朋友而出现在局部变量中的类不是直接的朋友。也就是说陌生的类最好不要以局部变量的形式出现在类的内部。
一个对象应该对其他对象保持最少的了解类与类关系越密切耦合度越大迪米特法则(Demeter Principle)又叫最少知道原则即一个类对自己依赖的类知道的越少越好。也就是说对于被依赖的类不管多么复杂都尽量将逻辑封装在类的内部。对外除了提供的 public 方法不对外泄露任何信息
八、合成复用原则
原则是尽量使用合成/聚合的方式而不是使用继承