11 2013 档案
摘要:一、引出模式代理,在生活我我们非常常见。比如在中学时期,总追过女孩子吧!身为码农的我们,没追过也没关系,总看过别人追过女孩子吧!这里出现了3个重要人物,甲想追求乙,但甲又不认识乙,幸好乙的闺蜜丙是甲的小学同学,于是呢,甲就通过丙给乙传递一些纸条,情书之类的。在这里面同学丙就充当着一个代理的角色,甲无法直接找到乙说话,只能通过丙给乙传递消息。二、认识模式1.定义:代理模式为目标对象提供一种代理,并由该代理对象控制对这个目标对象的访问。2.模式结构和说明Subject:目标接口,定义代理和具体目标对象的接口,这样就可以在任何地方使用具体目标对象的地方使用代理对象。RealSubject:具体的目标
阅读全文
摘要:一、引出模式1.生活中的例子大家都是知道,天朝家用电器的标准电压和美国标准电压是不同的,也就是我们把在天朝买的笔记本带到美国去也无法正常使用的,想要使用就必须跟换电源适配器。将电源适配器的电压换成适应美国的电压就可以正常使用的。而这个电源适配器的功能就是本篇所要学习的主题“适配器(Adapter)”。2.软件实例比如现在要做一个日志记录的系统,在第一版中使用文件为载体,可以对日志文件进行新增和删除,随着业务的扩大,文件日志已无法满足需求,于是在第二版中采用了数据库来存储日志,并能对日志进行CRUD。由于客户的多变,现在告诉你,这两种功能都要。问题出现了,就是第二版中定义的接口,对第一版并不是适
阅读全文
摘要:本篇学习的是门面模式,又称外观模式,个人感觉还是觉得门面模式比较形象,是一种结构型模式。一、引出模式在生活中,比如我们准备自己配一台电脑,一种解决方案就是自己去电子市场一家一家的去询问,去购买,无疑这样是很浪费时间和精力的,另外一种解决方案就是直接去找一家装机公司,你把需求告诉它,它自然就会把相应的...
阅读全文
摘要:一、引出模式开发场景:在前面工厂方法模式中我们提到出将数据以XML、TXT和数据库形式导出。现在我们再深化一下,对导出数据的格式进行约束。导出的文件,不管是格式,都分为文件头、文件体和文件尾文件头部分,需要描述:分公司名称、数据导出时间,文件体部分,需要描述:表的名称,单独一行。还有一些数据描述。文件尾部分,需要描述:导出人。当我们不使用模式时,不管是输出输出成文本文件还是,输出到XML,步骤基本上是不变的,都要经过以下四步1) 拼接文件头内容2) 拼接文件体内容3) 拼接文件尾内容4) 将内容输出到相应格式现在就是存在在使用输出格式时,都会重复这几个处理步骤,我们应该将其提炼出来,形成公共的
阅读全文
摘要:本篇和大家一起学习IoC和DI即控制反转和依赖注入。当然听上去这词语非常的专业,真不知道是怎么组出来的,看上去难归看上去难,但稍微理解一下也就这么回事了。首先我们要明白IoC/DI干嘛用的,不然别人问“你知道IoC/DI吗?”,“知道啊!”,“那干嘛用的?”,呵呵,就郁闷了,其实IoC/DI的作用就两个字——解耦,说一千道一万,还是离不开这两个字。所以,IoC/DI的作用就是解耦。至于为什么要解耦,解耦在面向对象开发中的重要性在这里就不做细说了。下面我们来认识一下它们的真面目吧!要理解IoC/DI两个概念,就必须搞清楚如下问题:参与者都有谁?依赖:谁依赖于谁?为什么需要依赖?注入:谁注入谁?到
阅读全文
摘要:前面已经学习简单工厂、工厂方法以及抽象工厂,本篇学习的是探究这三种工厂之间的区别与联系。在面向对象的设计中,对象的管理是其核心所在。其中,对象的创建是对象管理的第一步。对象的创建非常简单,在C#中,只需要使用new操作符调用对象的构造函数即可。因此,管理对象最重要的是掌握创建对象的时机。我们首先从对象的特征来看。代表抽象意义的类型,有接口和抽象类,但它们是不能创建对象实例的,这就意味着我们要创建的对象都是与具体的对象类型有关的。也就是说,创建对象的过程必将涉及设计中的实现细节,从而导致创建者与具体的被创建者之间的耦合增强。从而就引出了工厂三剑客了!简单工厂:提供一个创建对象实例的功能,而无需关
阅读全文
摘要:本篇讲的是抽象工厂模式。一、引出模式场景:我们在组装电脑时,通常会选择一系列的配件,比如CPU、硬盘、内存等。这里只讨论CPU和主板。在选择CPU时,也会有它的品牌、型号、针脚数目等。在选择主板时,也会有它的品牌、芯片组等。在装机之前还有考虑这些配件之间的兼容性,也就是说,里面选择的各个配件之间是有关联的。对于装机人来说,他只知道要组装电脑,需要相应的配件,但是具体用什么配件,还是客户说了算。也就是说装机人只负责组装,而客户负责选择装机所需要的具体配件。那我们使用程序来实现上面的过程吧!对于客户,它需要选择自己需要的CPU和主板,然后告诉装机人自己的选择,接下来就等着装机人组装电脑。对于装机人
阅读全文
摘要:前面一篇已经说了简单工厂,那就趁热打铁,开始讲述工厂方法吧。一、引出模式开发场景:实现一个导出数据的应用框架,让客户来选择导出数据的方式,并执行真正的数据导出。导出数据的方式可以是导出到文本文件,导出到XML,导出到Excel,导出到数据库等。好了,我们大概来想一下思路,对于上面的应用框架,导出来的...
阅读全文
摘要:学习GOF23种设计模式,从学习简单工厂开始是个不错的选择,简单工厂虽不属于GOF设计模式中的一种,但它在开发中是非常常用的,也充分体现了面向对象开发的要点和好处,所以理解简单工厂,对于后面学习其它的模式是非常有帮助的。一、引出模式我们时常听说面向对象开发很厉害,所以在开发中我们会时不时尝试用面向对...
阅读全文