分享

程序员应知应会之设计模式的七大原则

 北欧模式 2022-08-11 发布于陕西

所谓设计模式(Design Pattern,就如同围棋里的定式一样,是一套被反复使用、多数人知晓的,经过分类编目的代码设计经验的总结。使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性。设计模式使代码编制真正实现了工程化,设计模式是软件工作的基石,如同大厦的一块块砖石一样。

程式设计是思维具体化的一种方式,是思考如何解决问题的过程,设计模式是在解决问题的过程中,一些良好思路的经验集成。

常用的设计模式包括23种,分为三大类。

1、创建型设计模式5 :单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。

2、结构型设计模式7 :适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

3、行为型设计模式11 :策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、 访问者模式、中介者模式、解释器模式。

设计模式的构造通常遵循七大原则:

1、开放-封闭原则

一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。模块应该尽量在不修改原代码的情况下进行扩展。

2、单一职责原则

就一个类而言,应该仅有一个引起它变化的原因。

3、依赖倒转原则

程序要依赖于抽象接口,不要依赖于具体实现。简单的来说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块的耦合。

4、迪米特法则(即最小知识原则)

一个软件实体应当尽可能地少与其他实体发生相互作用。每一个软件单位对其他软件单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。迪米特法则的初衷在于降低类之间的耦合。由于每个类尽量减少对其他类的依赖,因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。迪米特法则不希望类之间建立直接的联系。如果有真的需要建立联系的,也希望能通过他的友元类来转达。因此,应用迪米特法则有可能造成一个后果就是:系统中存在大量的中介类,这些类之所以存在完全是为了传递类之间的相互关系,这在一定程度上增加了系统的复杂度。

5、接口隔离原则

客户端不应该依赖他不需要的接口,类间的依赖关系应建立在最小的接口上。

6、合成/聚合复用原则

在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新的对象通过这些对象的委派达到复用已有功能的目的。他的设计原则是:要尽量使用合成/聚合,尽量不要使用继承。

7、里氏代换原则

里氏代换原则是面向对象设计的基本原则之一。即任何基类可以出现的地方,子类一定可以出现。里氏代换原则是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受影响时,基类才能被真正复用,而衍生类也能够在积累的基础上增加新的行为,里氏代换原则是对-原则的补充。实现-原则的关键步骤就是抽象化。在基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。

活在信息时代的其它文章:

Java程序员应知应会之Spring AOP详解

从DevOps到AIOps(五):配置管理及监控工具

从DevOps到AIOps(四):编译工具

从DevOps到AIOps(三):持续集成工具

从DevOps到AIOps(二):协同开发工具

从DevOps到AIOps(一):DevOps的背景与发展

程序员应知应会之越权问题

自然语言处理(一):从试图建立规则到试图适应规则

Nginx的负载均衡没起作用?原来原因在这里

移动开发知识:Android平台如何进行蓝牙模块开发

Java程序员应知应会之Maven和Gradle的区别

PHP到底适不适合做大型网站?

GIS开发?你不得不了解的那些行业标准

程序员应知应会之MySQL的存储引擎

程序员应知应会之数据库发展简史

程序员应知应会之二进制小数的计算

高薪程序员必备知识:图数据库

JDK13新特性详解:老旧的Socket API是如何被重写的

Java Web程序员应知应会:Jsp的内置对象与应用

如何在图片与文字之间互相检索?程序员不可不知的跨模态技术

高级Java程序员必备的二十个技术点,你会了吗?(一)

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多