2019年8月15日

设计模式(21):行为型模式(八) 职责链模式(Chain of Responsibility)

摘要: 一、动机(Motivate) 在软件构建过程中,一个请求可能被多个对象处理,但是每个请求在运行时只能有一个接受者,如果显示指定,将必不可少地带来请求发送者与接受者的紧耦合。如何使请求的发送者不需要指定具体的接受者,让请求的接受者自己在运行时决定来处理请求,从而使两者解耦。二、意图(Intent) 避 阅读全文

posted @ 2019-08-15 17:30 springsnow 阅读(250) 评论(0) 推荐(0) 编辑

设计模式(20):行为型模式(七) 策略模式(Stragety)

摘要: 一、动机(Motivate) 在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。如何在运行时根据需要透明地更改对象的算法?将算法与对象本身解耦,从而避免上述问题?二、意图(Intent) 定义 阅读全文

posted @ 2019-08-15 17:25 springsnow 阅读(448) 评论(0) 推荐(0) 编辑

设计模式(19):行为型模式(六) 状态模式(State)

摘要: 一、动机(Motivate) 在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化,比如文档处于只读状态,其支持的行为和读写状态支持的行为就可能完全不同。 如何在运行时根据对象的状态来透明地更改对象的行为?而不会为对象操作和状态转化之间引入紧耦合?二、意图(Intent) 允许一个对象 阅读全文

posted @ 2019-08-15 17:16 springsnow 阅读(627) 评论(0) 推荐(0) 编辑

设计模式(18):行为型模式(五) 中介者模式(Mediator)

摘要: 一、动机(Motivate)为什么要使用中介者模式呢?如果不使用中介者模式的话,各个同事对象将会相互进行引用,如果每个对象都与多个对象进行交互时,将会形成如下图所示的网状结构。从上图可以发现,如果不使用中介者模式的话,每个对象之间过度耦合,这样的既不利于类的复用也不利于扩展。如果引入了中介者模式,那 阅读全文

posted @ 2019-08-15 17:10 springsnow 阅读(488) 评论(0) 推荐(0) 编辑

设计模式(17):行为型模式(四) 观察者模式(Observer)

摘要: 一、动机(Motivate) “观察者模式”在现实生活中,实例其实是很多的,比如:八九十年代我们订阅的报纸,我们会定期收到报纸,因为我们订阅了。银行可以给储户发手机短信,也是“观察者模式”很好的使用的例子,因为我们订阅了银行的短信业务,当我们账户余额发生变化就会收到通知等。 在软件构建过程中,我们需 阅读全文

posted @ 2019-08-15 16:39 springsnow 阅读(363) 评论(0) 推荐(0) 编辑

设计模式(16):行为型模式(三) 迭代器模式(Iterator)

摘要: 一、动机(Motivate) 在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也为“同一种算法在多种集合对象上进行操作”提供了可能。 使用面向对象技术将这种遍历机制抽象为“迭代器对象 阅读全文

posted @ 2019-08-15 16:13 springsnow 阅读(357) 评论(0) 推荐(0) 编辑

设计模式(15):行为型模式(二) 命令模式(Command)

摘要: 一、动机(Motivate) 在我们的现实生活中有很多例子可以拿来说明这个模式,我们还拿吃饺子这个事情来说。我的奶奶说了,今天想吃饺子,发出了命令,然后我奶奶就去看电视去了。我们夫妻俩收到命令就开始和面,做饺子馅,包饺子。饺子包好了,我们就休息一会,等下午5点就开始烧水煮饺子了,晚饭的时间到了,我奶 阅读全文

posted @ 2019-08-15 15:52 springsnow 阅读(475) 评论(0) 推荐(0) 编辑

设计模式(14):行为型模式(一) 模板方法模式(Template Method)

摘要: 一、动机(Motivate) “模板方法”,就是有一个方法包含了一个模板,这个模板是一个算法。在我们的现实生活中有很多例子可以拿来说明这个模式,就拿吃饺子这个事情来说,要想吃到饺子必须经过三步,第一步是“和面”,第二步是“包馅”,第三步是“煮饺子”,这三步就是一个算法,我们要想吃到不同的面和馅的饺子 阅读全文

posted @ 2019-08-15 15:33 springsnow 阅读(307) 评论(0) 推荐(0) 编辑

导航