首页 > 其他分享 >设计模式01 —— 设计模式简介

设计模式01 —— 设计模式简介

时间:2023-10-16 14:48:11浏览次数:46  
标签:01 原则 简介 基类 模式 Principle Pattern 设计模式

设计模式01 —— 设计模式简介

本教程参考:菜鸟教程 - 学的不仅是技术,更是梦想! (runoob.com)

为本人学习笔记,和课程学习笔记,希望各位大佬多多指点!


设计模式的简介

设计模式可以看作一套被人反复使用的,多人知晓的代码设计的经验总结。设计模式是软件工程的基石。

以下是完全版:

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

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

设计模式的基本设计原则

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

设计模式的类型

共有23种设计模式,能够分为以下三个大类:

  • 创建型模式(Creational Patterns)

    这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用new直接实例化对象

    • 工厂模式(Factory Pattern)
    • 抽象工厂模式(Abstract Factory Pattern)
    • 单例模式(Singleton Pattern)
    • 建造者模式(Builder Pattern)
    • 原型模式(Prototype Pattern)
  • 结构型模式(Structural Patterns)

    这些模式关注对象之间的组合和关系,旨在解决如何构建灵活并且可复用的类和对象的结构

    • 适配器模式(Adapter Pattern)
    • 桥接模式(Bridge Pattern)
    • 过滤器模式(Filter、Criteria Pattern)
    • 组合模式(Composite Pattern)
    • 装饰器模式(Decorator Pattern)
    • 外观模式(Facade Pattern)
    • 享元模式(Flyweight Pattern)
    • 代理模式(Proxy Pattern)
  • 行为型模式(Behavioral Patterns)

    这些模式关注对象之间的通信和交互,旨在解决对象之间的责任分配和算法的封装

    • 责任链模式(Chain of Responsibility Pattern)
    • 命令模式(Command Pattern)
    • 解释器模式(Interpreter Pattern)
    • 迭代器模式(Iterator Pattern)
    • 中介者模式(Mediator Pattern)
    • 备忘录模式(Mermento Pattern)
    • 观察者模式(Observer Pattern)
    • 状态模式(State Pattern)
    • 空对象模式(Null Object Pattern)
    • 策略模式(Strategy Pattern)
    • 模板模式(Template Pattern)
    • 访问者模式(Visitor Pattern)

设计模式的六大原则

1.开闭原则OCP(Open Close Principle)

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

2.里氏替换原则LSP(Liskov Substitution Principle)

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

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

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

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

使用多个隔离的接口,比使用单个接口要好。另一个意思:降低类之间的耦合度。设计模式强调降低依赖,降低耦合。

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

一个实体应该尽量少地与其他实体发生相互作用,使得系统功能模块相互独立。

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

尽量使用合成/聚合的方式,而不是使用继承的方式。

标签:01,原则,简介,基类,模式,Principle,Pattern,设计模式
From: https://www.cnblogs.com/ZzTzZ/p/17767266.html

相关文章

  • Gym101064L The Knapsack problem
    CF传送门发现物品的体积很小,尝试从此处入手。设\(K\)为最大的物品体积。把背包体积\(m\)分成差不超过\(K\)的两部分,然后合并。这样需要求出\(f(\frac{m}{2}-K\sim\frac{m}{2}+K)\)。递归地,可以发现需要求出\(f(\frac{m}{2^k}-K\sim\frac{m}{2^k}+K)\)。最......
  • [SWPU2019]Web1
    原理空格过滤or过滤的替代词无列名注入二次注入解题过程以后再写过程参考文章:https://blog.csdn.net/qq_56313338/article/details/132526998......
  • MBR10100CT-ASEMI肖特基二极管MBR10100CT
    编辑:llMBR10100CT-ASEMI肖特基二极管MBR10100CT型号:MBR10100CT品牌:ASEMI芯片个数:2封装:TO-220恢复时间:>50ns工作温度:-65°C~175°C浪涌电流:150A正向电流:10A反向耐压:100V正向压降:0.8V引脚数量:4MBR10100CT特性:ASEMI品牌MBR10100CT是采用工艺芯片,该芯片具有良好的稳定性......
  • [CISCN2019 华东南赛区]Web11
    原理smartySSTI模板注入解题过程首先进入靶场,看到currentIP,猜测是自己的ip,怎么获取的,大概率是请求包的X-Forwarded-For字段之后又看到了文件底部的smarty,是php的一种模板,思路清晰了,估计是在X-forwarded-for进行ssti注入二话不说抓包没看到X-Forwarded-For字段咋办,自己写......
  • P1019 [NOIP2000 提高组] 单词接龙
    P1019[NOIP2000提高组]单词接龙注意:1.相邻不包含2.每个单词最多使用两次3.如果两部分可以接龙,直接退出,因为如果再继续,长度一定变短(因为相邻的会抵销)4.加个特殊字符,这样就可以不用特判了因为n很小,直接暴力枚举1.如果两个可以接龙直接合并(注意相邻相同要抵消)2.暴力枚举每个单......
  • AT_abc301_h [ABC301Ex] Difference of Distance
    AT_abc301_h[ABC301Ex]DifferenceofDistance更好的阅读体验一道基础图论,很好口胡,但是实现不太简单。考虑离线,把询问挂在边上,按边权从小到大处理。处理到一个边权时,把边权小于它的边的两端用并查集合并,对于等于这个边权的边在并查集上建图,跑一边tarjan,因为问的是边,所以把......
  • React学习笔记01-React的基本认识
    1.React起源与发展React起源于Facebook的内部项目,因为该公司对市场上所有JavaScriptMVC框架,都不满意,就决定自己写一套,用来架设Instagram的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。2.React与传统MVC的关系轻量级的视图层库!AJavaScriptlibraryfor......
  • GBJ5010-ASEMI电源控制柜专用GBJ5010
    编辑:llGBJ5010-ASEMI电源控制柜专用GBJ5010型号:GBJ5010品牌:ASEMI封装:GBJ-4恢复时间:>50ns正向电流:50A反向耐压:1000V芯片个数:4引脚数量:4类型:整流桥、功率整流器件特性:功率整流器件、高性能整流桥浪涌电流:400A正向压降:1.05V封装尺寸:如图工作温度:-55°C~150°CGBJ5010......
  • 前台端分离 技术架构 系统架构图 20231016
       ......
  • 计讯物联微型环保数采仪TS501开启雨污泵站无人值守新模式
    应用背景雨污泵站作为城市功能建设的重要组成部分,其智能、高效的功能为城市缓解排污困难,同时减轻污水处理厂的负荷,促进了城市的可持续发展。对于雨污泵站的智能化,我们不得不归功于计讯物联微型环保数采仪TS501。基于TS501的远程监控、智能控制、预报预警、安全管理、数据监控与传......