文章分类 -  设计模式

摘要:解释器模式 解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。 介绍 意图:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用 阅读全文
posted @ 2019-11-20 00:02 跃小云 阅读(282) 评论(0) 推荐(0) 编辑
摘要:备忘录模式 备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 介绍 意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。 主要解决:所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并 阅读全文
posted @ 2019-11-19 23:39 跃小云 阅读(258) 评论(0) 推荐(0) 编辑
摘要:访问者模式介绍 最复杂的设计模式,并且使用频率不高,《设计模式》的作者评价为:大多情况下,你不需要使用访问者模式,但是一旦需要使用它时,那就真的需要使用了。 访问者模式是一种将数据操作和数据结构分离的设计模式。(觉得太抽象,可以看下面的例子)。 访问者模式的使用场景 对象结构比较稳定,但经常需要在此 阅读全文
posted @ 2019-11-19 23:32 跃小云 阅读(407) 评论(0) 推荐(0) 编辑
摘要:迭代器模式 迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。 迭代器模式属于行为型模式。 介绍 意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。 阅读全文
posted @ 2019-11-18 23:47 跃小云 阅读(162) 评论(0) 推荐(0) 编辑
摘要:中介者模式 中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。 介绍 意图:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从 阅读全文
posted @ 2019-11-18 23:38 跃小云 阅读(339) 评论(0) 推荐(0) 编辑
摘要:观察者模式 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。 介绍 意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 主要解决: 阅读全文
posted @ 2019-11-18 23:27 跃小云 阅读(186) 评论(0) 推荐(0) 编辑
摘要:状态模式 在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。 在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。 介绍 意图:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类 阅读全文
posted @ 2019-11-18 01:02 跃小云 阅读(198) 评论(0) 推荐(0) 编辑
摘要:实例: 拦截器 责任链模式 顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。 在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一 阅读全文
posted @ 2019-11-18 00:18 跃小云 阅读(169) 评论(0) 推荐(0) 编辑
摘要:命令与策略模式区别: 策略模式是通过不同的算法做同一件事情:例如排序 而命令模式则是通过不同的命令做不同的事情,常含有(关联)接收者。 命令模式 命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该 阅读全文
posted @ 2019-11-18 00:09 跃小云 阅读(215) 评论(0) 推荐(0) 编辑
摘要:策略模式 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 介绍 意图:定义一系 阅读全文
posted @ 2019-11-17 00:25 跃小云 阅读(158) 评论(0) 推荐(0) 编辑
摘要:模板模式 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 介绍 意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变 阅读全文
posted @ 2019-11-17 00:07 跃小云 阅读(128) 评论(0) 推荐(0) 编辑
摘要:组合模式 组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组 阅读全文
posted @ 2019-11-16 00:44 跃小云 阅读(309) 评论(0) 推荐(0) 编辑
摘要:享元模式 享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。 享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。我们将通过创建 5 个对象来画出 阅读全文
posted @ 2019-11-16 00:33 跃小云 阅读(337) 评论(0) 推荐(0) 编辑
摘要:外观模式 外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。 这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。 介绍 意图: 阅读全文
posted @ 2019-11-16 00:16 跃小云 阅读(578) 评论(0) 推荐(0) 编辑
摘要:装饰模式的定义与特点 装饰(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。 与代理模式区别:代理模式一般是自己内部创建被代理的对象,不需要构造函数时传入对象参数。 与适配器模式区别: 装饰器与适配器都有一个 阅读全文
posted @ 2019-11-14 23:23 跃小云 阅读(318) 评论(0) 推荐(0) 编辑
摘要:桥接模式的定义与特点 桥接(Bridge)模式的定义如下:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。桥接(Bridge)模式的优点是: 由于抽象与实现分离,所以扩展能力强; 其实现细节对客户透明。 缺点是:由于聚合关系建立在抽 阅读全文
posted @ 2019-11-14 23:00 跃小云 阅读(346) 评论(0) 推荐(0) 编辑
摘要:模式的定义与特点 适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少 阅读全文
posted @ 2019-11-13 23:34 跃小云 阅读(236) 评论(0) 推荐(0) 编辑
摘要:代理模式的定义与特点 代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。代理模式的主要优点有: 代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用; 代理对象可以扩展目标对 阅读全文
posted @ 2019-11-13 23:19 跃小云 阅读(345) 评论(0) 推荐(0) 编辑
摘要:模式的定义与特点 建造者(Builder)模式的定义:指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。该 阅读全文
posted @ 2019-11-12 23:30 跃小云 阅读(333) 评论(0) 推荐(0) 编辑
摘要:模式的定义与特点 抽象工厂(AbstractFactory)模式的定义:是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。 抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等 阅读全文
posted @ 2019-11-12 23:09 跃小云 阅读(613) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示