首页 > 其他分享 >二十四中涉及模式简介

二十四中涉及模式简介

时间:2024-06-14 09:29:10浏览次数:22  
标签:子类 对象 简介 接口 模式 二十四中 Pattern 设计模式

设计模式(Design Patterns)是软件设计中被反复使用的、经过验证的、能解决特定问题的代码结构或解决方案。它们是开发人员为了解决特定类型的设计问题而总结出的最佳实践。设计模式可以帮助开发人员以更高效、更优雅的方式构建软件系统,提高代码的可维护性、可重用性和可扩展性。

设计模式主要分为三大类:创建型模式、结构型模式和行为型模式。以下是每一类设计模式的简介及其主要模式:

1. 创建型模式(Creational Patterns)

创建型模式关注于对象的创建过程,通过控制创建逻辑而不是直接实例化对象,以提高代码的灵活性和复用性。

  • 单例模式(Singleton Pattern):确保一个类只有一个实例,并提供全局访问点。
  • 工厂方法模式(Factory Method Pattern):定义一个创建对象的接口,但让子类决定实例化哪个类,工厂方法使得类的实例化延迟到子类。
  • 抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
  • 建造者模式(Builder Pattern):将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。
  • 原型模式(Prototype Pattern):通过复制现有的实例来创建新的对象,避免使用构造函数直接创建对象。

2. 结构型模式(Structural Patterns)

结构型模式关注于类和对象的组合,利用继承和接口来实现更大的功能模块,帮助构建灵活和高效的结构。

  • 适配器模式(Adapter Pattern):将一个类的接口转换成客户端希望的另一个接口,使得原本由于接口不兼容而无法一起工作的类可以协同工作。
  • 桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立变化。
  • 组合模式(Composite Pattern):将对象组合成树形结构以表示“部分-整体”的层次结构,使得客户端可以统一处理单个对象和组合对象。
  • 装饰模式(Decorator Pattern):动态地给对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。
  • 外观模式(Facade Pattern):为子系统中的一组接口提供一个一致的界面,使得子系统更加容易使用。
  • 享元模式(Flyweight Pattern):通过共享技术来有效地支持大量细粒度对象的复用。
  • 代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问。

3. 行为型模式(Behavioral Patterns)

行为型模式关注对象之间的通信和职责分配,通过设计模式来处理类和对象之间的复杂交互,提升代码的灵活性和可扩展性。

  • 责任链模式(Chain of Responsibility Pattern):将请求沿着一条链传递,直到被处理,可以动态地调整链。
  • 命令模式(Command Pattern):将请求封装成一个对象,从而使得可以用不同的请求对客户端进行参数化、队列请求或记录请求日志,以及支持可撤销操作。
  • 解释器模式(Interpreter Pattern):为语言的文法定义一个表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。
  • 迭代器模式(Iterator Pattern):提供一种方法顺序访问一个聚合对象中的各个元素,而无需暴露该对象的内部表示。
  • 中介者模式(Mediator Pattern):用一个中介对象来封装一系列对象之间的交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散。
  • 备忘录模式(Memento Pattern):在不破坏封装的前提下,捕获并保存一个对象的内部状态,以便以后恢复它。
  • 观察者模式(Observer Pattern):定义对象间的一种一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。
  • 状态模式(State Pattern):允许对象在内部状态改变时改变它的行为,对象看起来似乎修改了它的类。
  • 策略模式(Strategy Pattern):定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换,策略模式使得算法可以在不影响客户端的情况下发生变化。
  • 模板方法模式(Template Method Pattern):定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。
  • 访问者模式(Visitor Pattern):表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。

设计模式的使用可以显著提高软件开发的效率和质量,帮助开发人员以更清晰、更模块化的方式组织代码。

标签:子类,对象,简介,接口,模式,二十四中,Pattern,设计模式
From: https://blog.csdn.net/qq_40254606/article/details/139666587

相关文章

  • EtherCAT主站SOEM -- 41 -- win-vs-soem-win10及win11系统VisualStudio-SOEM-控制电机
    EtherCAT主站SOEM--41--win-vs-soem-win10及win11系统VisualStudio-SOEM-控制电机走位置模式(PP模式)0QT-SOEM及STM32F767-SOEM视频欣赏及源代码链接:0.1Linux--Ubuntu系统之QT-SOEM博客、视频欣赏及源代码链接0.2STM32F767-SOEM博客、视频欣赏及源代码链接0......
  • 【Java中常用的设计模式总结】
    文章目录概要1、单例模式(SingletonPattern)2、工厂模式(FactoryPattern)3、建造者模式(BuilderPattern)4、原型模式(PrototypePattern)5、适配器模式(AdapterPattern)6、桥接模式(BridgePattern)7、组合模式(CompositePattern)8、装饰器模式(DecoratorPattern)9、外观模式(Facade......
  • Android 11 自由窗口模式启动app
    //未定义publicstaticfinalintWINDOWING_MODE_UNDEFINED=0;//普通全屏窗口publicstaticfinalintWINDOWING_MODE_FULLSCREEN=1;//画中画publicstaticfinalintWINDOWING_MODE_PINNED=2;//分屏主窗口publicstaticfinali......
  • 设计模式-桥接模式
    桥接模式桥接模式(bridge)也成为桥梁模式,接口(Interface)模式,柄体(HandleAndBody)模式,是将抽象部分与它的具体实现部分分离,使得它们可以独立的变化,属于结构型模式。桥接模式主要是通过组合的方式建立两个类之间的关系,而不是继承。但又类似于多重继承方案,但是多重继承方案往往违......
  • SpringMVC简介
    目录1、SpringMVC简介1.1、什么是MVC1.2、什么是SpringMVC1.3、SpringMVC的特点1、SpringMVC简介1.1、什么是MVCMVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分M:Model,模型层,指工程中的JavaBean,作用是处理数据JavaBean分为两类:一类称为实体类Bean:专门存......
  • 设计模式之策略模式
    设计模式中的策略模式及其应用一、策略模式概述策略模式是一种行为型设计模式,它定义了一系列的算法,并将每一个算法封装起来,使它们可以互相替换。策略模式使得算法可以独立于使用它的客户端变化。简而言之,策略模式允许在运行时根据需要选择不同的算法行为。二、策略模式的结......
  • 在 Wed 中应用 MyBatis(同时使用MVC架构模式,以及ThreadLocal 事务控制)
    1.在Wed中应用MyBatis(同时使用MVC架构模式,以及ThreadLocal事务控制)@目录1.在Wed中应用MyBatis(同时使用MVC架构模式,以及ThreadLocal事务控制)2.实现步骤:1.第一步:环境搭建2.第二步:前端页面index.html3.第三步:创建pojo包、service包、dao包、web包、utils包,exceptions......
  • 【设计模式】创建型设计模式之工厂模式(简单工厂、工厂方法、抽象工厂、go简单实例)
    一般情况下,工厂模式分为三种更为细分的类型:简单工厂、工厂方法和抽象工厂。其中,前两者的方法原理比较简单,在实际的项目里也比较常用;而抽象工厂的原理稍微复杂,在实际的项目中相对也不常用。所以,我们今天重点是前两种工厂模式,简单工厂在下面这段代码里,我们根据配置文件的后......
  • PasteSpider的集群组件PasteCluster(让你的项目快速支持集群模式)的思路及实现(含源码
    PasteSpider是什么?一款使用.net编写的开源的Linux容器部署助手,支持一键发布,平滑升级,自动伸缩,Key-Value配置,项目网关,环境隔离,运行报表,差量升级,私有仓库,集群部署,版本管理等!30分钟上手,让开发也可以很容易的学会在linux上部署你得项目![从需求角度介绍PasteSpider(K8S平替部署......
  • 【redis】使用redis benchmark评估哨兵模式主节点性能
    一、场景   验证redis哨兵模式主节点性能 二、工具Redis benchmark官网Redisbenchmark|Docs 三、命令介绍 四、使用redis-benchmark-h192.168.3.190-p26380-a123456-n100000-c20======PING_INLINE======100000requestscompletedin1.4......