摘要: 一、引言 在软件开发过程中,有些对象有时候会由于网络或其他的障碍,以至于不能够或者不能直接访问到这些对象,如果直接访问对象给系统带来不必要的复杂性,这时候可以在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象,然后客户端只需要访问代理对象,由代理对象去帮我们去请求目标对象并返回结果给客户端 阅读全文
posted @ 2016-09-06 23:41 连先森 阅读(1205) 评论(0) 推荐(0) 编辑
摘要: 一、引言 在软件开发过程,如果我们需要重复使用某个对象的时候,如果我们重复地使用new创建这个对象的话,这样我们在内存就需要多次地去申请内存空间了,这样可能会出现内存使用越来越多的情况,这样的问题是非常严重,然而享元模式可以解决这个问题,下面具体看看享元模式是如何去解决这个问题的。 二、享元模式的详 阅读全文
posted @ 2016-09-06 23:40 连先森 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 一、引言 在软件开发过程中,客户端程序经常会与复杂系统的内部子系统进行耦合,从而导致客户端程序随着子系统的变化而变化,然而为了将复杂系统的内部子系统与客户端之间的依赖解耦,从而就有了外观模式,也称作 ”门面“模式。下面就具体介绍下外观模式。 二、外观模式的详细介绍 2.1 定义 外观模式提供了一个统 阅读全文
posted @ 2016-09-06 23:35 连先森 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 一、引言 在软件开发过程中,我们经常会遇到处理简单对象和复合对象的情况,例如对操作系统中目录的处理就是这样的一个例子,因为目录可以包括单独的文件,也可以包括文件夹,文件夹又是由文件组成的,由于简单对象和复合对象在功能上区别,导致在操作过程中必须区分简单对象和复合对象,这样就会导致客户调用带来不必要的 阅读全文
posted @ 2016-09-01 21:32 连先森 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 一、引言 在软件开发中,我们经常想要对一类对象添加不同的功能,例如要给手机添加贴膜,手机挂件,手机外壳等,如果此时利用继承来实现的话,就需要定义无数的类,如StickerPhone(贴膜是手机类)、AccessoriesPhone(挂件手机类)等,这样就会导致 ”子类爆炸“问题,为了解决这个问题,我 阅读全文
posted @ 2016-09-01 21:28 连先森 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 一、引言 这里以电视遥控器的一个例子来引出桥接模式解决的问题,首先,我们每个牌子的电视机都有一个遥控器,此时我们能想到的一个设计是——把遥控器做为一个抽象类,抽象类中提供遥控器的所有实现,其他具体电视品牌的遥控器都继承这个抽象类,具体设计类图如下: 这样的实现使得每部不同型号的电视都有自己遥控器实现 阅读全文
posted @ 2016-08-31 21:43 连先森 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 一、引言 在实际的开发过程中,由于应用环境的变化(例如使用语言的变化),我们需要的实现在新的环境中没有现存对象可以满足,但是其他环境却存在这样现存的对象。那么如果将“将现存的对象”在新的环境中进行调用呢?解决这个问题的办法就是我们本文要介绍的适配器模式——使得新环境中不需要去重复实现已经存在了的实现 阅读全文
posted @ 2016-08-31 21:35 连先森 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 一、引言 在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,如果我们用new操作符去创建这样的类实例,这未免会增加创建类的复杂度和耗费更多的内存空间,因为这样在内存中分配了多个一样的类实例对象,然后如果采用工厂模式来创建这样的系统的话,随着产品类的不断增加,导 阅读全文
posted @ 2016-08-31 21:30 连先森 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 一、引言 在软件系统中,有时需要创建一个复杂对象,并且这个复杂对象由其各部分子对象通过一定的步骤组合而成。例如一个采购系统中,如果需要采购员去采购一批电脑时,在这个实际需求中,电脑就是一个复杂的对象,它是由CPU、主板、硬盘、显卡、机箱等组装而成的,如果此时让采购员一台一台电脑去组装的话真是要累死采 阅读全文
posted @ 2016-08-31 21:04 连先森 阅读(157) 评论(0) 推荐(0) 编辑
摘要: /// <summary> /// 下面以绝味鸭脖连锁店为例子演示下抽象工厂模式 /// 因为每个地方的喜欢的口味不一样,有些地方喜欢辣点的,有些地方喜欢吃不辣点 /// 客户端调用 /// </summary> class Client { static void Main(string[] ar 阅读全文
posted @ 2016-08-31 20:57 连先森 阅读(128) 评论(0) 推荐(0) 编辑