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