01 2016 档案

摘要:访问者模式可以用C#的扩展方法 迭代器:这个更不用说,就是for\foreach循环 观察者:经常提到的委托\事件 原型模式:浅拷贝和深拷贝~ 模板方法:这个可能在代码中不知不觉就用了,就是定义一个模式流程,将变化的抽象,但是流程必须依靠父类定义的顺序。 好了,说到这吧 设计模式,不管是了解还是看看 阅读全文
posted @ 2016-01-25 21:50 K战神 阅读(539) 评论(0) 推荐(0) 编辑
摘要:一、定义在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态二、实例2.1 发起人:记录当前时刻的内部状态,负责定义哪些属于备份范围的状态,负责创建和恢复备忘录数据。 public class Originator { ... 阅读全文
posted @ 2016-01-25 17:49 K战神 阅读(222) 评论(0) 推荐(0) 编辑
摘要:一、定义请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。二、实例其实和状态模式类似,只是状态模式在具体的子类中指定了下一个具体的处理对象。而责任链模式,可以在客户端动态... 阅读全文
posted @ 2016-01-22 08:05 K战神 阅读(392) 评论(0) 推荐(0) 编辑
摘要:一、定义运用共享技术有效地支持大量细粒度的对象。二、实例首先,有个享元超类 public abstract class Website { public int websiteid; public Website(int _websiteid) { ... 阅读全文
posted @ 2016-01-21 08:07 K战神 阅读(214) 评论(0) 推荐(0) 编辑
摘要:一、定义将复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。二、实例抽象建造者:定义规则和流程 public abstract class Builder { public abstract void Order(); public abstract... 阅读全文
posted @ 2016-01-20 17:04 K战神 阅读(219) 评论(0) 推荐(0) 编辑
摘要:一、定义在设定环境中,定义一种规则或者语法,通过解释器来解释规则或者语法的含义.二、实例:将 二十一 —> 212.1 设定我们的环境 Context public class Context { public string Input { get; set; } ... 阅读全文
posted @ 2016-01-18 22:54 K战神 阅读(212) 评论(0) 推荐(0) 编辑
摘要:一、定义适配器模式——使得新环境中不需要去重复实现已经存在了的实现而很好地把现有对象(指原来环境中的现有对象)加入到新环境来使用。二、实例:客户端对于发送数据的接口不能直接使用,但是里面的逻辑重写又会重复。接口返回数据: public class Reponser { publi... 阅读全文
posted @ 2016-01-17 22:32 K战神 阅读(320) 评论(0) 推荐(1) 编辑
摘要:一、定义将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。二、实例:总店—加盟店总店和加盟店实行的会员制度一样,但是总店和加盟店又是一个层级关系。这样的关系使得形成了一张树状图。根节点—子节点—叶子2.1 抽象组合关系//-----------... 阅读全文
posted @ 2016-01-15 18:06 K战神 阅读(257) 评论(0) 推荐(0) 编辑
摘要:一、定义在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。当一个抽象可能有多个实现时,通常用继承来进行协调。抽象类定义对该抽象的接口... 阅读全文
posted @ 2016-01-14 18:00 K战神 阅读(264) 评论(0) 推荐(0) 编辑
摘要:一、定义用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。总结一下:类之间的行为互相影响,有着剪不断理还乱的关系。需要中介者来调停。三大部分:同事类:类A和类B互相影响。我们将他们称之为同事类。抽象中介者:中介者和同事类之间的... 阅读全文
posted @ 2016-01-13 14:27 K战神 阅读(258) 评论(0) 推荐(0) 编辑
摘要:一、定义为子系统中的一组接口提供一个一致的界面,用来访问子系统中的一群接口。外观模式的实现核心主要是——由外观类去保存各个子系统的引用,实现由一个统一的外观类去包装多个子系统类,然而客户端只需要引用这个外观类,然后由外观类来调用各个子系统中的方法二、实例我们有两个子系统 public class S... 阅读全文
posted @ 2016-01-13 08:21 K战神 阅读(318) 评论(0) 推荐(0) 编辑
摘要:一、定义代理模式就是中间层。可以帮助我们增加或者减少对目标类的访问。二、实例我在项目中会遇见这样的情况,类A中的方法是protected,但是此时另外一个分继承自A类的B类要使用A中的个别方法。比如这样: public class Collect { protected void... 阅读全文
posted @ 2016-01-12 17:36 K战神 阅读(234) 评论(3) 推荐(1) 编辑
摘要:一、定义装饰者模式:动态地给一个对象添加一些额外的职责,就增加功能来说,Decorator模式比生成子类更为灵活。Decorator模式的工作原理是:可以创建始于Decorator对象(负责新的功能的对象)终于原对象的一个对象“链”。二、实例:手机屏幕装饰2.1 手机public abstract ... 阅读全文
posted @ 2016-01-11 22:56 K战神 阅读(218) 评论(0) 推荐(0) 编辑
摘要:一、定义单例就是一个实例。从始至终我们只需要维护这么一个实例,来节约资源。二、实例我们用构造函数创建实例,现在我们要维护此类只维护一个实例,那么我们需要将生产实例的能力也就是构造函数加以限制。并通过一个统一的函数对外公开我们维护的唯一的实例。2.1 第一代单例模式:利用懒加载,在确实要使用实例的时候... 阅读全文
posted @ 2016-01-11 16:38 K战神 阅读(308) 评论(0) 推荐(0) 编辑
摘要:一、定义允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。我们的程序中很多情况下是判断一个参数的值,进行一些其他操作。这些情况必须依次过滤直到符合条件的时候,执行具体逻辑。二、实例我们原来的逻辑: PriceFlag pf = PriceFlag.AppP... 阅读全文
posted @ 2016-01-08 16:51 K战神 阅读(250) 评论(0) 推荐(0) 编辑
摘要:一、定义将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作.我觉得可以这样:将一个请求封装为一个对象,对请求排队或记录请求日志,以及支持可撤销的操作;从而使你可用不同的请求对客户进行参数化;二、实例:一个遥控面板,两台小家电。一个面板控制... 阅读全文
posted @ 2016-01-07 17:36 K战神 阅读(386) 评论(0) 推荐(0) 编辑
摘要:一、定义策略就是算法,封装多种算法,算法之间可以互相替换。类似于,一道数学题有很多的思路和解题方法。二、实例推送策略: public interface IPushStrategy { bool Push(); } public class QQPush : IPu... 阅读全文
posted @ 2016-01-06 07:47 K战神 阅读(255) 评论(0) 推荐(0) 编辑
摘要:一、定义前面讲到的工厂方法。每个工厂对应着一类产品。抽象工厂就是工厂方法中不再是针对一种产品,而是多个不同类型的产品。工厂方法和抽象方法的区别—手工的图,字有点丑。二、实例服务类型接口:也可以比作"系列A",具体的产品:WCF、BL public interface IService { ... 阅读全文
posted @ 2016-01-05 22:45 K战神 阅读(300) 评论(0) 推荐(1) 编辑
摘要:一、定义第一篇简单工厂方法讲到,后续添加服务的时候会直接修改工厂类,因为他控制了实例化哪个类。工厂方法,就让实例化推迟到了子类。怎样推迟?在子类中实例化呗。二、实例之前的服务不变,将简单的工厂的工厂类拆分成,每个case对应一个具体的工厂,这样也就只创建一个服务类。这里的两个工厂BLFactory和... 阅读全文
posted @ 2016-01-05 07:28 K战神 阅读(310) 评论(0) 推荐(0) 编辑
摘要:一、定义定义无需赘述,根据参数判断实例化哪个对象。替换让人眼花缭乱的if语句。二、实例代码定义接口:public interface IService{}BL和WCF继承并实现:public class BL:IService { public BL() { ... 阅读全文
posted @ 2016-01-04 22:16 K战神 阅读(343) 评论(2) 推荐(1) 编辑

点击右上角即可分享
微信分享提示