设计模式 (1) 入门

news/2024/11/8 18:34:38/

目录

设计模式系列文章主要包含

1.什么是设计模式?

2.设计模式的分类

2.1 创建型设计模式

2.2 结构型设计模式

2.3 行为型设计模式


设计模式系列文章主要包含

设计模式  (一) 入门

设计模式  (二) 创建型设计模式系列

设计模式  (三) 结构型设计模式系列

设计模式  (四) 行为型设计模式系列

设计模式  (五) 设计模式实战系列

设计模式  (六) 设计模式优化系列

设计模式是一种被广泛使用的软件开发技巧,它可以帮助开发人员更好地组织和管理代码。设计模式是一组被证明有效的解决方案,可以在特定的情况下使用,以解决特定的问题。在这个系列中,我们将介绍设计模式的基本概念、分类和使用场景。

1.什么是设计模式?

设计模式是一种被广泛使用的软件开发技巧,它可以帮助开发人员更好地组织和管理代码。设计模式是一组被证明有效的解决方案,可以在特定的情况下使用,以解决特定的问题。

2.设计模式的分类

设计模式可以分为三种类型:创建型、结构型和行为型。创建型模式用于处理对象的创建,结构型模式用于处理对象之间的关系,行为型模式用于处理对象的行为。

2.1 创建型设计模式

创建型设计模式包括单例模式、工厂模式、抽象工厂模式、建造者模式和原型模式。这些模式都是用于处理对象的创建。

  • 单例模式:确保一个类只有一个实例,并提供全局访问点。

  • 工厂模式:定义一个用于创建对象的接口,让子类决定实例化哪个类。

  • 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

  • 建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

  • 原型模式:通过复制现有的实例来创建新的实例。

2.2 结构型设计模式

结构型设计模式包括适配器模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式和代理模式。这些模式都是用于处理对象之间的关系。

  • 适配器模式:将一个类的接口转换成客户希望的另一个接口。

  • 桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。

  • 组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构。

  • 装饰器模式:动态地给一个对象添加一些额外的职责。

  • 外观模式:为子系统中的一组接口提供一个一致的界面。

  • 享元模式:运用共享技术有效地支持大量细粒度的对象。

  • 代理模式:为其他对象提供一种代理以控制对这个对象的访问。

2.3 行为型设计模式

行为型设计模式包括责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式和模板方法模式。这些模式都是用于处理对象的行为。

  • 责任链模式:将请求的发送者和接收者解耦,使多个对象都有机会处理这个请求。

  • 命令模式:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。

  • 解释器模式:给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。

  • 迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。

  • 中介者模式:用一个中介对象来封装一系列的对象交互。

  • 备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。

  • 观察者模式:定义对象间的一种一对多的依赖关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。

  • 状态模式:允许对象在其内部状态改变时改变它的行为。

  • 策略模式:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。

  • 模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。

以上就是设计模式入门系列的内容,希望能够帮助你更好地理解设计模式的基本概念、分类和使用场景。


http://www.ppmy.cn/news/82192.html

相关文章

【Linux系列P2】Linux基本指令知识(带图演示,精炼)

前言 大家好,这里是YY的Linux系列part2;本章主要内容面向能使用Linux的老铁,主要内容含【设置普通用户】【Linux基本知识】【基本指令大全】 在下一章节【Linux系列part3】中,YY将手把手讲述Linux的权限知识,欢迎订阅YY的Linux专栏…

Redis缓存架构详解

文章目录 Redis缓存结构详解前言Redis 缓存架构redis 和db数据一致性先写db还是写redis如果是先写db,再删除缓存呢?延迟双删 简单的缓存,并发不高,没啥流量简单的缓存,并发高,但是存在redis和 Db 双写不一致,读写并发不一致问题解决方案 1解决方案 2解决方案 3读写锁…

Windows 上安装和启动 Nacos 2.2.2 最新版本

文章目录 前言版本声明本地启动1. 下载 Nacos2. 开启鉴权配置3. 持久化数据库4. 启动 Nacos5. 启动测试 联系我 前言 本文旨在为您详细介绍如何安装和启动 Nacos 2.2.2 的最新版本,以及为 youlai-mall 开源商城版本的升级做好准备工作。 版本声明 名称版本操作系…

智慧城市同城V4小程序V2.24独立开源版 + 全插件+VUE小程序开源前端+最新用户授权接口

智慧城市同城V4小程序V2.22开源独立版本月最新版,与上一版相比修复了一些小细节,功能本身并无大的变化。新版系统包含全插件、包括很多稀缺收费的插件都在里面如括招聘、 家政等,外加小程序的VUE开源前端,整个系统全开源&#xff…

【V2G】电动汽车接入电网优化调度研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

HashSet创建String类型的数据

package com.test.Test07;import java.util.HashSet;public class TestString {//这是一个main方法&#xff0c;是程序的入口public static void main(String[] args) {//创建一个HashSet集合HashSet<String> hs new HashSet<>();hs.add("hello");Syste…

TIA博途-32位浮点数大小端存储-高低字节转换的具体方法示例(4种字节排列顺序)

TIA博途-32位浮点数大小端存储-高低字节转换的具体方法示例(4种字节排列顺序) 如下图所示,新建一个项目后,添加一个1215PLC,添加一个FB块,块的接口变量如下, 如下图所示,该FB块的具体程序可参考下面的内容: 如下图所示,在数据块种添加3个变量用于FB块的功能测试,…