工厂方法模式(创建型)

定义了一个接口用于创建对象,该模式由子类决定实例化哪个工厂类。该模式把类的实例化推迟到了子类。

抽象工厂模式(创建型)

该模式提供了一个接口用于创建一组相关或相互依赖的对象;该模式由子类选择决定具体的实例化类。抽象工厂方法模式中工厂类(核心)将具体创建产品的工作交给子类去做,仅负责给出具体工厂类必须实现的接口。

建造者模式(创建型)(生成器模式)

分离一个复杂对象的构造与表示。该模式将一个复杂对象分解为多个简单对象,然后逐步构建出复杂对象。该模式中,产品组成结构不变,但每个部分可以灵活选择。

单例模式(创建型)

一个类只有一个自身创建的实例,提供该实例给所有其他对象。

原型模式(创建型)

指定一个已创建的实例作为原型,通过复制该原型来创建对象。系统中存在大量相同,相似的对象,利用构造函数来创建对象,比较耗费资源。用原型模式生成对象就很高效。


适配器模式(结构型)

兼容不同接口,使其能协同工作。
该模式分为类适配器模式,对象适配器模式。
(1)类适配器模式:该模式使用多重继承方式,进行接口间的匹配。该模式耦合度较高,要求开发者了解组件内部结构,实际应用较小。
(2)对象适配器模式:该模式对象的匹配依赖于对象组合。

组合模式(结构型)

将对象组合成树型结构,用于表示部分-整体(树型)关系。

装饰模式(结构型)

使用组合关系创建装饰对象,可以不改变真实对象的类结构,又增加了动态额外的功能。

外观模式(结构型)

为了让子系统更加好用,为子系统中的一组接口提供一个一致的界面,一个高层接口。

享元模式(结构型)

利用共享技术,复用大量的细粒度对象。

代理模式(结构型)

让其他对象可以用代理的方式控制访问本对象。


模板模式(行为型)

将算法的一些步骤延迟到子类中实现,使得子类可以在不改变算法结构的情况下,重新定义该算法的某些特定步骤。

解释器模式(行为型)

依据某一语言及其文法表示,来定义一个解释器(表达式)通过该解释器使用该表示来解释语言中的句子。

责任链模式(行为型)

多个对象有可能处理某一请求时,为避免冲突,将这些对象连成一条链,并沿着该链传递该请求,直到有一个对象处理它为止。

命令模式(行为型)

将一个请求封装为一个对象,这样发出请求和执行请求就成为了独立的操作,可以进行请求的排队,撤销操作,记录请求日志。

迭代器模式(行为型)

提供一个对象来顺序访问聚合类(数据集合,列表等),而不暴露聚合类的内部细节。

中介者模式(行为型)

利用一个中介对象,封装对象间的交互。引入中介者后,各对象间不需要显示引用,从而使对象之间成为松耦合关系。

备忘录模式(行为型)

备忘录模式又称为快照模式。在不破坏封装性的前提下,捕获对象内部状态,并保存,以便以后,可以恢复到该状态。

观察者模式(行为型)

该模式针对的是对象间的一对多的依赖关系,当被依赖对象状态发生改变时,就会通知并更新所有依赖它的对象。

状态模式(行为型)

状态模式中,把“判断逻辑”放入状态对象中,当状态对象的内部状态发生变化时,可以根据条件相应地改变其行为。而外界看来,更像是对象发生了改变。

策略模式(行为型)

一一封装各个算法,不同的算法可以相互替换,但并不影响客户的使用。

访问者模式(行为型)

分离数据结构与数据操作,在不改变元素数据结构的情况下,进行添加元素操作。

软件设计23种设计模式相关推荐

  1. 软考-软件设计师 23种设计模式

    23种设计模式 创建型设计模式 抽象工厂(Abstract Factory)设计模式 工厂方法(Factory Method)设计模式 单例 (Singleton)设计模式 生成器(Builder)设 ...

  2. 软件的23种设计模式的通俗解释

    1 工厂方法 追 MM 少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是 MM 爱吃的东西,虽然口味有所不同,但不管你带 MM 去麦当劳或肯德基,只管向服务员说「来四个鸡翅」就行了.麦当劳和肯德基就是生 ...

  3. 软件设计原则及设计模式

    一. 软件六大设计原则(SOLID) Single Responsibility Principle:单一职责原则 Open Closed Principle:开闭原则 Liskov Substitu ...

  4. 软件开发设计思想与6大软件设计原则、23种设计模式目录-设计模式

    目录 1.软件开发设计指导思想: (1)可维护性Maintainability (2)可复用性Reusability (3)可扩展性Extensibility/Scalability (4)灵活性fl ...

  5. java外围设计_Java 编程(23 种设计模式)

    简介 在一般的程序开发过程中,初中级程序员接触的程序设计模式是比较少的.最常见的可能就是单例模式.工厂模式.抽象工厂模式等等,但实际上程序中的设计模式是非常多的,具体可以分为 23 种设计模式.设计模 ...

  6. 软件开发除了23种设计模式,还有7个开发原则需要了解

    摘要:使用设计模式能够使我们开发的程序,易维护.可拓展,可复用.但是在23个设计模式的背后,还有7个开发原则去支撑着设计模式,保证23个设计模式能够易维护.可拓展,可复用.所以这篇文章来解开七大设计原 ...

  7. Java的7大设计原则和23种设计模式

    目录 一.UML类图 二. 设计原则 1.单一职责原则 2.里氏替换原则 3.依赖倒置原则 4.接口隔离原则 5.迪米特法则-最少知道原则 6.开闭原则 7.组合/聚合复用原则 三.Java中的23 ...

  8. 学习6大设计原则、23种设计模式

    了解设计模式的朋友们,想必都听说过"六大设计原则"吧.其实最经典的 23 种设计模式中或多或少地都在使用这些设计原则,也就是说,设计模式是站在设计原则的基础之上的.所以在学习设计模 ...

  9. 23种设计模式——软件设计模式概述

    文章目录 23种设计模式--软件设计模式概述 1.软件设计模式的产生背景 2.软件设计模式的概念与意义 2.1. 软件设计模式的概念 2.2. 学习设计模式的意义 3.软件设计模式的基本要素 4.23 ...

最新文章

  1. Linux学习(2)-命令基础背景+命令使用帮助获取
  2. window上安装mysql数据库
  3. Shell(7)——case
  4. UVa12166 Equilibrium Mobile修改天平(二叉树+dfs)
  5. HDU-5783 Divide the Sequence(贪心)
  6. 计算机 数据库知识点,数据库知识点总结
  7. WebAssembly生态将完善网络安全性
  8. orm查询部分字段_ORM问题第2部分–查询
  9. Java 8中的默认方法(Defender方法)简介
  10. Android ANR视角InputDispatcher
  11. vs 正则表达式转大写_liunx之通配符amp;正则表达式
  12. Maven学习总结(41)——Maven依赖范围、传递、排除详解
  13. linux用c++获取mac地址,网卡地址,网口地址,网卡序号ip地址,不使用 ioctl(sock, SIOCGIFCONF, ifc)获取网络接口名称,这个接口有时会返回-1获取不到,换方法获取
  14. webpower邮件营销平台可以带来什么?
  15. 【基础篇】————28、横向渗透
  16. 理解充分条件与必要条件
  17. Ehcache开源解读
  18. 推荐 5 个优秀的 Javascript 图标库
  19. 还在为英语学习发愁吗?身为程序员的你可能需要这样一份“宝典”(上)...
  20. 怎么用计算机测出来体脂,如何测自己的体脂率?

热门文章

  1. 计算机毕设太简单会不会过不了 SSM公司设备管理系统 企业员工工资管理系统 公司员工工资管理系统Java
  2. 《离散数学及其应用》读书笔记【一】逻辑和证明
  3. python计算微积分_用Python学微积分---函数
  4. html网页盒子整体放大,网页前端开发制作盒子拖拽、缩放
  5. 关于“远程计算机或设备不接受连接”解决方法
  6. exoplayer2同时播放多个音频文件
  7. 算法分析之工作分配问题
  8. matlab 画折线图
  9. 海量过程数据的 CPK 与 PPK 计算
  10. .NET(C#、VB)APP开发——Smobiler平台控件介绍:OCR组件