其实关于UML、7种软件设计原则和23种设计模式相关的文章,我之前都已经写过了,但是因为创作仓促,质量没有达到我的预期,都被我设置成了私密,接下来的日子里,打算再依次打磨打磨,发表出来。
截止目前,唯一放出来的只有 【Java设计模式】软件设计七大原则,阅读量两万多,看来大家都热衷于将代码写得更加优质,有水平呀~
这篇文章主要起到小地图的作用,不涉及具体的设计模式的探讨以及设计模式的发展历程。
从1995 年至今,设计模式在软件开发中得以广泛应用,在Sun 的Java SE/Java EE 平台 和Microsoft 的.net 平台 设计中就应用了大量的设计模式。
设计模式(Design Pattern) 是一套 被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结 ,使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
根据其 目的 (模式是用来做什么的)可分为 创建型(Creational) , 结构型(Structural) 和 行为型(Behavioral) 三种:
- 创建型模式主要用于
创建对象
。 - 结构型模式主要用于
处理类或对象的组合
。 - 行为型模式主要用于
描述对类或对象怎样交互和怎样分配职责
。
创建型模式
- 抽象工厂模式(Abstract Factory)
- 建造者模式(Builder)
- 工厂方法模式(Factory Method)
- 原型模式(Prototype)
- 单例模式(Singleton)
结构型模式
- 适配器模式(Adapter)
- 桥接模式(Bridge)
- 组合模式(Composite)
- 装饰模式(Decorator)
- 外观模式(Facade)
- 享元模式(Flyweight)
- 代理模式(Proxy)
行为型模式
- 职责链模式(Chain of Responsibility)
- 命令模式(Command)
- 解释器模式(Interpreter)
- 迭代器模式(Iterator)
- 中介者模式(Mediator)
- 备忘录模式(Memento)
- 观察者模式(Observer)
- 状态模式(State)
- 策略模式(Strategy)
- 模板方法模式(Template Method)
- 访问者模式(Visitor)
根据 范围 ,即模式主要是用于处理类之间关系还是处理对象之间的关系,可分为 类模式 和 对象模式 两种:
- 类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是属于静态的。
- 对象模式处理对象间的关系,这些关系在运行时刻变化,更具动态性。
根据 范围 引看一下下面的表格:
范围\ 目的 | 创建型模式 | 结构型模式 | 行为型模式 |
---|---|---|---|
类模式 | 工厂方法模式 | (类)适配器模式 | 解释器模式 模板方法模式 |
对象模式 | 抽象工厂模式 建造者模式 原型模式 单例模式 |
(对象)适配器模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 |
职责链模式 命令模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 策略模式 访问者模式 |
你现在知道设计模式大致有哪些东西了,想要很好地应用可以从它的基本要素着手:模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式
其中的关键元素包括以下四个方面:
• 模式名称 (Pattern name)
• 问题 (Problem)
• 解决方案 (Solution)
• 效果 (Consequences)
提到的相关设计模式表明有些设计模式可以结合使用的。
还有注意在学习设计模式之前要把UML类图搞清楚,也要有这样的意识:设计模式不完全遵循七大软件设计原则,也就是说有的原则可能违背,有的原则则是遵守,是一种取舍性质。
转载:https://blog.csdn.net/qq_42322103/article/details/102217881