首页 > 其他分享 >设计模式概述

设计模式概述

时间:2024-11-28 10:36:29浏览次数:4  
标签:原则 开发人员 代换 概述 Principle 基类 设计模式

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。

设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。

毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是设计模式能被广泛应用的原因。

  • 对接口编程而不是对实现编程。
  • 优先使用对象组合而不是继承。

设计模式的使用

设计模式在软件开发中的两个主要用途。

开发人员的共同平台

设计模式提供了一个标准的术语系统,且具体到特定的情景。例如,单例设计模式意味着使用单个对象,这样所有熟悉单例设计模式的开发人员都能使用单个对象,并且可以通过这种方式告诉对方,程序使用的是单例模式。

最佳的实践

设计模式已经经历了很长一段时间的发展,它们提供了软件开发过程中面临的一般问题的最佳解决方案。学习这些模式有助于经验不足的开发人员通过一种简单快捷的方式来学习软件设计。

 

设计模式的优点

  • 提供了一种共享的设计词汇和概念,使开发人员能够更好地沟通和理解彼此的设计意图。
  • 提供了经过验证的解决方案,可以提高软件的可维护性、可复用性和灵活性。
  • 促进了代码的重用,避免了重复的设计和实现。
  • 通过遵循设计模式,可以减少系统中的错误和问题,提高代码质量。

 

设计模式的六大原则

1、开闭原则(Open Close Principle)

开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。

2、里氏代换原则(Liskov Substitution Principle)

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

3、依赖倒转原则(Dependence Inversion Principle)

这个原则是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。

4、接口隔离原则(Interface Segregation Principle)

这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。它还有另外一个意思是:降低类之间的耦合度。由此可见,其实设计模式就是从大型软件架构出发、便于升级和维护的软件设计思想,它强调降低依赖,降低耦合。

5、迪米特法则,又称最少知道原则(Demeter Principle)

最少知道原则是指:一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。

6、合成复用原则(Composite Reuse Principle)

合成复用原则是指:尽量使用合成/聚合的方式,而不是使用继承。

 

标签:原则,开发人员,代换,概述,Principle,基类,设计模式
From: https://www.cnblogs.com/ZJ-CN/p/18573722

相关文章

  • 设计模式--原型模式及其编程思想
    原型模式(PrototypePattern)原型模式的核心思想是通过复制(克隆)现有对象来创建新对象。原型模式通常涉及两个角色:原型对象和具体原型对象。原型对象是需要被复制的对象,而具体原型对象是实现了克隆方法的原型对象。在Java中,原型模式通常通过实现Cloneable接口和重写clone()方法来......
  • Java设计模式 —— 【创建型模式】原型模式(浅拷贝、深拷贝)详解
    文章目录前言原型模式一、浅拷贝1、案例2、引用数据类型二、深拷贝1、重写clone()方法2、序列化总结前言先看一下传统的对象克隆方式:原型类:publicclassStudent{privateStringname;publicStudent(Stringname){this.name=name;......
  • 基于关键点的人脸检测+人脸识别+关键点检测(概述+代码)
    #概述开发了一个面部检测工具,可以通过输入图像或视频,实时地检测出其中的面部区域,并提取出面部特征,例如人脸轮廓、眼睛、鼻子、嘴巴等。结果展示!添加图片注释,不超过140字(可选)#手段使用了深度学习技术,基于TensorFlow框架构建了一个卷积神经网络(CNN)模型。该模型采用了......
  • 注意力机制及Transformer概述
    1. \textbf{1.}1. 注意力机制1️⃣生物学中的注意力提示类型含义基础非自主提示(......
  • 计算机基础知识概述
    《计算机基础知识概述》计算机是我们日常生活和工作中不可或缺的工具,了解一些计算机的基础知识,能让我们更好地使用它。一、计算机硬件组成计算机硬件主要包括中央处理器(CPU)、内存、硬盘、输入设备和输出设备等。1.CPU是计算机的核心,负责执行指令和处理数据。2.内存用于......
  • 林业产品推荐系统:Spring Boot设计模式
    6系统测试这部分内容主要是把前期编码完成的系统,当成是计算机系统的一部分,并结合一些数据,计算机硬件和支持的软件进行集成测试和确认测试。之所以要进行最后的测试步骤,原因在于检查制作的系统与需求说明书的比较中,存在的差异问题。进一步确认制作的系统在功能与性能上跟需......
  • 03-06、SpringCloud第六章,升级篇,升级概述与Rest微服务案例构建
    SpringCloud第六章,升级篇,升级概述与Rest微服务案例构建一、Springcloud升级之后的变动发现springcloud升级之后,原来的各个框架都有所变化。二、Rest微服务构建案例工程以订单模块做一个微服务通用案例、Consumer消费者[order]通过rest调用Provider生产者[payment]提供......
  • 软件设计模式分类与总结
    软件设计模式分类与总结设计模式是软件工程中用于解决特定问题的一套最佳实践和解决方案。以下是设计模式的三大分类及其描述:1.创建型模式(CreationalPatterns)创建型模式关注对象的实例化过程,旨在使系统独立于对象的创建方式。单例模式(Singleton)确保一个类只有一......
  • 23种设计模式-装饰器(Decorator)设计模式
    文章目录一.什么是装饰器设计模式?二.装饰器模式的特点三.装饰器模式的结构四.装饰器模式的优缺点五.装饰器模式的C++实现六.装饰器模式的Java实现七.代码解析八.总结类图:装饰器设计模式类图一.什么是装饰器设计模式? 装饰器模式(DecoratorPattern)是一种结构......
  • 23种设计模式-外观(Facade)设计模式
    文章目录一.什么是外观设计模式?二.外观设计模式的特点三.外观设计模式的结构四.外观设计模式的优缺点五.外观设计模式的C++实现六.外观设计模式的JAVA实现七.代码解析八.总结类图:外观设计模式类图一.什么是外观设计模式? 外观设计模式(FacadePattern)是一种结......