摘要: 在Observer模式中,当观察对象的状态发生变化时,会通知给观察者。Observer模式适用于根据对象状态进行相应处理的场景。 首先看一下示例程序的视图。 然后用实际代码来理解这种设计模式。 Observer接口是用来表示“观察者”的接口。具体的观察者会实现这个接口。用于生成数值的NumberGe 阅读全文
posted @ 2018-04-12 08:57 BigJunOba 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 在实际的工作小组的交流过程是,组员向仲裁者报告,仲裁者向组员下达指示,组员之间不再互相询问和指示。Mediator模式是指,当发生麻烦事情的时候,通知仲裁者;当发生涉及全体组员的事情时,也通知仲裁者。当仲裁者下达指示时,组员会立即执行。团队组员之间不再互相沟通并私自做出决定,而是发生任何事情都向仲裁 阅读全文
posted @ 2018-04-12 08:20 BigJunOba 阅读(357) 评论(0) 推荐(0) 编辑
摘要: Facade模式可以为相互关联在一起的错综复杂的类整理出高层接口,可以让系统对外只有一个简单的接口,而且还会考虑到系统内部各个类之间的责任关系和依赖关系,按照正常的顺序调用各个类。 还是先看一下示例程序的类图。 接下来根据示例程序代码理解一下Facade模式。 Database类就一个getProp 阅读全文
posted @ 2018-04-03 17:36 BigJunOba 阅读(235) 评论(0) 推荐(0) 编辑
摘要: Chain of Responsibility模式就是当外部请求程序进行某个处理,但程序暂时无法直接决定由哪个对象负责处理时,就需要推卸责任。也就是说,当一个人被要求做什么事时,如果他可以做就自己做,如果不能做就转给下一个人,以此类推。 下面是示例程序的类图。 下面是示例程序代码。 Trouble类 阅读全文
posted @ 2018-04-03 16:21 BigJunOba 阅读(184) 评论(0) 推荐(0) 编辑
摘要: Visitor模式可以用来把数据结构与处理分离开。通俗来说就是编写一个访问者类来访问数据结构中的元素,并把对各元素的处理交给访问者类。这样,当需要增加新的处理时,只需要编写新的访问者,然后让数据结构可以接受访问者的访问即可。 下面先看示例程序的类图。 在示例程序中,使用Composite模式中用到了 阅读全文
posted @ 2018-04-03 14:40 BigJunOba 阅读(257) 评论(0) 推荐(0) 编辑
摘要: Composite模式模式能够使容器与内容具有一致性,创造出递归结构。有时,与将文件夹和文件都作为目录条目看待一样,将容器和内容作为同一种东西看待,可以帮助我们方便地处理问题。在容器中既可以放入内容,也可以放入小容器,然后在那个小容器中,又可以放入更小的容器。这样,就形成了容器结构、递归结构。 示例 阅读全文
posted @ 2018-04-03 14:34 BigJunOba 阅读(260) 评论(0) 推荐(0) 编辑
摘要: Decorator模式就是不断地为对象添加装饰的设计模式。以蛋糕为例,程序中的对象就相当于蛋糕,然后像不断地装饰蛋糕一样地不断地对其增加功能,它就变成了使用目的更加明确的对象。 首先看示例程序的类图。 然后看示例程序代码。 Display类是可以显示多行字符串的抽象类。getColumns方法用来获 阅读全文
posted @ 2018-04-03 11:45 BigJunOba 阅读(207) 评论(0) 推荐(0) 编辑
摘要: Strategy模式,就是用来整体地替换算法,可以轻松地以不同的算法解决同一个问题。 还是根据一个示例程序来理解这种设计模式吧。先看一下示例程序的类图。 然后看示例程序代码。 Hand类是用来表示猜拳中“手势”的类,首先创建了Hand类的实例,并将它们保存在hand数组中。getHand方法的作用是 阅读全文
posted @ 2018-04-01 11:12 BigJunOba 阅读(262) 评论(0) 推荐(0) 编辑
摘要: Bridge模式就是将类的功能层次结构和类的实现层次结构连接起来。 类的功能层次结构就是根据实际非抽象类来说的,也就是父类具有基本功能,然后在子类中增加新功能。用于增加新功能。 类的实现层次结构就是根据抽象类来说的,也就是父类通过声明抽象方法来定义接口,子类通过实现具体方法来实现接口。用于增加新实现 阅读全文
posted @ 2018-04-01 11:10 BigJunOba 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 抽象工厂的工作是将“抽象零件”组装为“抽象产品”。在抽象工厂模式中将会出现抽象工厂,它会将抽象零件组装为抽象产品。也就是说,我们并不关心零件的具体实现,而是只关心接口。我们仅适用该接口将零件组装起来成为产品。 示例程序的功能是将带有层次关系的链接的集合制作成HTML文件。 Item类是Link类和T 阅读全文
posted @ 2018-04-01 11:09 BigJunOba 阅读(197) 评论(0) 推荐(0) 编辑