设计模式(一)-简要概述(2)

news/2024/6/17 5:05:35 标签: 设计模式

部分总结内容以及对应设计模式的链接,待更新中。。。

(1)创建者模式:

特点:将对象的创建和使用分离。

对象创建的过程不在客户端(使用对象的调用者)里处理,所以客户端不需要关注对象创建的细节。当对象创建的过程有变化,则不会对客户端的代码逻辑有影响。

优点: 降低系统的耦合度。

共有5种:

  • 单例模式(Singleton Pattern)
  • 简单工厂模式(不属于设计模式,只是其他设计模式的基础)
  • 工厂模式(Factory Pattern)
  • 抽象工厂模式(Abstract Factory Pattern)
  • 原型模式(Prototype Pattern)
  • 建造者模式(Builder Pattern)

(2)结构型模式

特点:将类(或对象)按照某种结构进行组合,主要关注是类或对象之间的结构。

分为两种类型:
1)类结构型模式:通过继承机制进行组合来实现功能。
2 )对象结构型模式:通过组合对象的方式实现功能。

共7种:

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

(3)行为型模式

特点:类(或对象)之间的协同通信,主要关注是算法的控制。

当单个对象难以完成复杂的算法逻辑时,这时就需要多个类或对象之间进行组合来共同完成这一复杂的任务。

分为两种类型:
1)类行为模式:通过继承关系在类与类之间分配行为。
2)对象行为模式:通过对象组合的方式分配行为。

共11种:

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

http://www.niftyadmin.cn/n/5194125.html

相关文章

『力扣刷题本』:链表分割

一、题目 现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。 二、思路解析 首先,让我们列出我们需要做的事情&…

IDEA插件推荐:Apipost-Helper

Hello,大家好,我是灰小猿。 今天分享一下我最近在开发过程中发现的一个比较实用的IDEA插件—Apipost-Helper IDEA虽然能够帮助开发人员更加高效地编写、调试和部署软件应用程序。但我们在编写完接口代码后肯定还需要进行接口调试等操作,这个…

ARM CoreLink CCN 互连总线介绍

NIC NOC CCI CMN CNN NI cmn-700 nic-700 ni-700 MLGB这都是啥玩意? 后期博文或视频将会更新这一系列。今天先温习一下CNN的概念,这是来自2014年的文章,然后稍微整理总结一番。 以下是正文… 现代主流和优质 ARM 片上系统 (SoC) 产品使用 CoreLink 缓存一致性网络 (CCN) 504…

酷柚易汛ERP - 序列号盘点操作指南

1、应用场景 将系统中开启序列号的商品数量与与实际存放的数量进行对比。 2、主要操作 2.1 录入序列号 打开【盘点】-【序列号盘点】,新增序列号盘点单,点击【SN】按钮,在弹框中输入序列号。 支持扫描枪录入序列号支持复制粘贴序列号录入…

Lambda表达式(附有案例)

Lambda表达式 Lambda表达式是C11引入的一种函数对象(函数式编程)的语法扩展。它可以用于创建匿名的、临时的函数对象,并可以在需要函数对象的地方直接使用,而无需单独定义一个函数或函数对象类。 Lambda表达式的基本语法如下&am…

Spring Boot接口设计规范

接口参数处理及统一结果响应 1、接口参数处理 1、普通参数接收 这种参数接收方式是比较常见的,由于是GET请求方式,所以在传参时直接在路径后拼接参数和参数值即可。 例如:localhost:8080/api/product/list?key1value1&key2value2 /…

深度学习之基于Yolov5的车流或人流量密度统计

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 YOLOv5 DeepSort 车流/人流量密度统计介绍YOLOv5DeepSort车流/人流量密度统计 二、功能三、系统四. 总结 一项目简介 YOLOv5 DeepSort 车流/人流量密度统计…