文章分类 -  NET 模式设计

有关.NET方面的模式设计
面向对象基础 [转]
摘要:面向对象中最常提到的就是对象,类,实例这些,既然是面向对象的话,那先从对象谈起,对象首先,一切事物皆为对象,对象是一个实体,其可以包含自己的特性和特定的行为。类就是将一些对象所具有的相同属性和相同的行为进行提取出来,也就是抽象,提取出来后便会组成一个集合,那么这个集合就是类,所以类,也可以理解为是对类似的对象分类的意思。实例就是一个真实的对象,由于前面使用类来对对象进行了分类,提取了他们相似的属性... 阅读全文

posted @ 2010-05-18 09:58 黄裳 阅读(144) 评论(0) 推荐(0)

委托与事件 [转]
摘要:首先给出一堆委托的介绍内容,不理解的话,也没有问题,等看了 Demo 再回过头来看就 OK 了:委托是一个类,它定义了方法的类型,使得可以将方法当做另一个方法的参数来进行传递,这种将方法动态地赋值给参数的做法,可以避免在程序中大量的使用判断语句,同时使得程序具有更好的扩展性。委托是一个可以保存对方法的引用的类,委托类具有一个签名,并且它只能对与其签名匹配的方法进行引用,这样,委托就等效于一个类型安... 阅读全文

posted @ 2010-05-18 09:56 黄裳 阅读(126) 评论(0) 推荐(0)

代理模式(Proxy)[转]
摘要:为了深刻点理解代理模式,我们先来看一个 Demo ,首先这个 Demo 是用来测试 QQ 号码是否在线,这里涉及到的内容是 Web 服务的使用,这个 Web 服务所在地址为:http://webservice.webxml.com.cn/webservices/qqOnlineWebService.asmx如果有不懂 Web 服务的,还可以查看笔者一篇涉及 Web 服务的文章,http://www... 阅读全文

posted @ 2010-05-18 09:54 黄裳 阅读(111) 评论(0) 推荐(0)

迭代器模式(Iterator)和组合模式(Composite)[转]
摘要:在面向对象设计中,总是会要使用集合对象的,这些集合对象的内部结构可能是非常复杂的,但是作为客户端使用的话,我们只需要关心集合内部的数据和遍历集合内部的数据就可以了,如果以最简单的设计来实现的话,大可以定义一个类,类中定义一个诸如数组,栈,队列之类的对象,然后将数据的存储以及数据的遍历全部交给这一个类来完成,但是在面向对象中还有这样一个设计原则,也就是单一责任原则(对于一个类来说,应该仅有一个能够引... 阅读全文

posted @ 2010-05-18 09:52 黄裳 阅读(171) 评论(0) 推荐(0)

适配器模式(Adapter)和外观模式(Facade)[转]
摘要:适配器模式(Adapter)还是先从引入说起,先来看一个问题吧,总所周知,在中国通用的电压时 220V,而美国电压则是 110V,如果有经常在美国和中国之间跑的 IT 人,而其笔记本都是随身携带的,那么它的笔记本的电压问题如何解决呢?(因为在美国和中国电压不同,所以一般的电器会不通用的)而适配器在这个问题上体现得妙极妙极。现在的笔记本都有一个电源适配器,而正是这个电源适配器来解决上面提到的适配器问... 阅读全文

posted @ 2010-05-18 09:51 黄裳 阅读(134) 评论(0) 推荐(0)

模板方法(TemplateMethod)[转]
摘要:首先谈论一下模板方法的重要性和意义所在,其实,很多人都应该使用过模板方法了,只是他们自己没有意识到而已,比如,您新建一个 Form 或者是 Page 的时候便是使用了模板方法,因为窗体继承自 Form 而页面则是继承自 Page ,在这里您便可以把 Form 和 Page 看做是一个模板,而我们在自己的窗体或者是页面中的操作只不过是定义了属于我们自己的具体算法而已。模板方式模式是基于继承的代码复用... 阅读全文

posted @ 2010-05-18 09:51 黄裳 阅读(136) 评论(0) 推荐(0)

命令模式(Command)[转]
摘要:看了很多命令模式方面的资料,感觉最经典的实例就是餐厅的那个例子,确实这个餐厅的例子在一定层面上很好的解释了命令模式以及命令模式的真正用途,当然其也存在一定的问题(下面会提到)所以下面也还是从这个餐厅来说起。 首先来看一幅图: 上面这副类图反映的是,一个顾客去一个餐馆,而这个餐馆就只有厨师一个人(没有服务员),干脆不这样看吧,就直接说是一个顾客去一个地摊上吃东西(总所周知,地摊上一般就一个厨师),... 阅读全文

posted @ 2010-05-18 09:49 黄裳 阅读(135) 评论(0) 推荐(0)

单例模式(Singleton)[转]
摘要:首先来明确一个问题,那就是在某些情况下,有些对象,我们只需要一个就可以了,比如,一台计算机上可以连好几个打印机,但是这个计算机上的打印程序只能有一个,这里就可以通过单例模式来避免两个打印作业同时输出到打印机中,即在整个的打印过程中我只有一个打印程序的实例。简单说来,单例模式(也叫单件模式)的作用就是保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个(当然也可以不存在)。 下面... 阅读全文

posted @ 2010-05-18 09:48 黄裳 阅读(120) 评论(0) 推荐(0)

工厂模式(Factory)[转]
摘要:先来明确一个问题,那就是有的时候,实例化这个活动不应该总是公开的进行,也就是不要公开的使用 new 操作符,因为,这样容易造成耦合问题。我们不应该针对实现编程,但是当我们在使用 new 的时候,便是针对实现编程,而如果您要实例化的话,必须要使用 new 这个关键字,很明显,这是一个矛盾问题!!!当然这里的矛盾并不是说不能够使用 new ,而是更好的使用了 new。那么如何来解决这样一个矛盾问题呢?... 阅读全文

posted @ 2010-05-18 09:45 黄裳 阅读(120) 评论(0) 推荐(0)

装饰者模式(Decorator)[转]
摘要:首先来看一个例子:比如,饮料可以分为很多种类,而这里我取一个咖啡,那么这个咖啡呢,有多种形式的,比如有加糖了的咖啡,有加奶的咖啡,也有加热了的咖啡,也有加了冰块的咖啡。而各个顾客的选择却是不同的,比如,有的客户是要加糖的咖啡,而有的客户却是要加冰的咖啡,也就是需求是各种各样的,那么如何实现这种情况呢?先来看一种愚笨的做法,那就是你可以通过继承来实现, 虽然上面的做法确实可以提供加糖加冰的咖啡,但是... 阅读全文

posted @ 2010-05-18 09:44 黄裳 阅读(113) 评论(0) 推荐(0)

观察者模式(Observer)[转]
摘要:先来看一个范例:一般来说,报社的业务就是出版报纸,而作为用户呢,您可以在这家报社订阅报纸,这样的话,只要报社有出了新报纸的时候,便会给订阅其报纸的用户发送,也就是,只要你是报社的用户,那么当报社有新报纸的时候,报社就会给你送一份报纸过来,同时,你也可以取消你在这家报社订阅的报纸,这样的话,你就不会收到由这家报社送过来的报纸了。在来看下面的截图: 其实呢,上面描述的问题就是一个典型的观察者模式,观察... 阅读全文

posted @ 2010-05-18 09:42 黄裳 阅读(100) 评论(0) 推荐(0)

策略模式(Strategy)[转]
摘要:先来看一副 Class Diagram 上面这副类图呢,表明,如果您要上学的话,你有四种策略,您可以走路去,可以坐公交车,可以骑自行车,可以开私家车,上面的即是一个最简单的策略模式结构图了先来明白一下聚合关系是什么?比如 A 对象可以包含 B 对象,但 B 对象不是 A 对象的一部分,则 A 和 B 之间就是一种聚合关系。比如一个人是属于一个家庭的,而一个家庭可以有多个人,同时,一个人可以属于多个... 阅读全文

posted @ 2010-05-18 09:40 黄裳 阅读(182) 评论(0) 推荐(0)

导航