设计模式的分类

简介: 设计模式(design pattern)是对面向对象设计中反复出现的问题的解决方案。其并非是一种技术,而是在项目迭代的过程中,为了实现一些功能,设计了一些解决方案,将这些经验进行总结出来的一个模式体系,这个体系是总结的经验。

一、设计模式的要素


什么是设计模式?


设计模式(design pattern)是对面向对象设计中反复出现的问题的解决方案。其并非是一种技术,而是在项目迭代的过程中,为了实现一些功能,设计了一些解决方案,将这些经验进行总结出来的一个模式体系,这个体系是总结的经验。


为什么要使用设计模式?


我的理解是:

  1. 让代码更容易理解,更加清晰
  2. 使程序更加健壮,更好的高内聚,低耦合,方便维护
  3. 更好的复用代码,保证代码的可靠性


设计模式一般有以下4个基本要素


  • 模式名称:用一两个词来描述模式的问题、解决方案和效果
  • 问题:描述了应该在何时使用模式
  • 解决方案:描述了设计的组成成分、他们之间的相互关系及各自的职责和协作方式
  • 效果:描述了模式应用的效果及使用模式应权衡的问题



二、设计模式的分类


设计模式共23 种,分为三大类,分别是 创建型模式结构型模式行为型模式


创建型模式:创建对象的过程


  1. 工厂模式(Factory Method)
  2. 抽象工厂模式(Abstract Factory)
  3. 建造者模式(Builder)
  4. 单例模式(Singleton)
  5. 原型模式(Prototype)



结构型模式:如何组合类和对象以获得更大的结构


  1. 适配器(Adapter)
  2. 桥接(Bridge)
  3. 组合(Composite)
  4. 装饰(Decorator)
  5. 外观(Facade)
  6. 享元(Flyweight)
  7. 代理(Proxy)



行为型模式:涉及算法和对象间职责的分配,不仅描述对象或类的模式,也描述他们之间的通信模式


  1. 责任链模式(Chain of Responsibility)
  2. 命令模式(Command)
  3. 解释器(Interpreter)
  4. 迭代器(Iterator)
  5. 中介者模式(Mediator)
  6. 备忘录模式(Memento)
  7. 观察者模式(Observer)
  8. 状态(State)
  9. 策略模式(Strategy)
  10. 模板方法模式(Template Method)
  11. 访问者(Visitor)


三、学习链接

my.oschina.net/mdxlcj/blog…

my.oschina.net/u/2391658?t…


目录
相关文章
|
6月前
|
设计模式 安全 Java
【设计模式】2、设计模式分类和单例设计模式
【设计模式】2、设计模式分类和单例设计模式
57 0
|
6月前
|
设计模式 算法
23种设计模式分类
23种设计模式分类
99 0
|
设计模式
设计模式系列教程(03) - 设计模式分类及六大原则
设计模式系列教程(03) - 设计模式分类及六大原则
42 0
|
设计模式 算法 关系型数据库
设计模式——设计模式简介、分类及面向对象设计原则
23 种设计模式中有些模式今天已经不流行了,有些模型已经被语言机制替代了,有些模式你可能常常会忘记,但这些都不重要,重要的是设计原则,因为有了这些设计原则,你有可能发明自己的模式,你也可以理解未来千千万万其他领域的模式。
97 1
|
设计模式
结构型设计模式分类
结构型设计模式分类
|
设计模式
大话设计模式-23中设计模式分类
大话设计模式-23中设计模式分类
|
设计模式 算法
设计模式简单分类
设计模式简单分类
74 0
|
设计模式 算法
23种设计模式分类
23种设计模式分类
60 0
|
设计模式 算法 程序员
java-23种设计模式概述【软件设计模式基本介绍(是什么、作用、优点)、模式的分类和介绍】
java-23种设计模式概述【软件设计模式基本介绍(是什么、作用、优点)、模式的分类和介绍】
339 0
|
设计模式 开发框架 算法
【Java设计模式 设计模式与范式】设计模式概述、基本原则及分类
【Java设计模式 设计模式与范式】设计模式概述、基本原则及分类
69 0

热门文章

最新文章

  • 1
    《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)
    44
  • 2
    C++一分钟之-C++中的设计模式:单例模式
    51
  • 3
    《手把手教你》系列基础篇(九十三)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-上篇(详解教程)
    36
  • 4
    《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
    59
  • 5
    Java面试题:结合设计模式与并发工具包实现高效缓存;多线程与内存管理优化实践;并发框架与设计模式在复杂系统中的应用
    54
  • 6
    Java面试题:设计模式在并发编程中的创新应用,Java内存管理与多线程工具类的综合应用,Java并发工具包与并发框架的创新应用
    39
  • 7
    Java面试题:如何使用设计模式优化多线程环境下的资源管理?Java内存模型与并发工具类的协同工作,描述ForkJoinPool的工作机制,并解释其在并行计算中的优势。如何根据任务特性调整线程池参数
    49
  • 8
    Java面试题:请列举三种常用的设计模式,并分别给出在Java中的应用场景?请分析Java内存管理中的主要问题,并提出相应的优化策略?请简述Java多线程编程中的常见问题,并给出解决方案
    102
  • 9
    Java面试题:设计模式如单例模式、工厂模式、观察者模式等在多线程环境下线程安全问题,Java内存模型定义了线程如何与内存交互,包括原子性、可见性、有序性,并发框架提供了更高层次的并发任务处理能力
    74
  • 10
    Go语言设计模式:使用Option模式简化类的初始化
    71