
设计模式
pamxy
这个作者很懒,什么都没留下…
展开
-
关于23种设计模式的有趣见解
转自:http://blog.youkuaiyun.com/jeffrey_ming/article/details/5523905在网上看见了这篇文章,作者以轻松的语言比喻了java的32种模式,有很好的启发作用。创建型模式 1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了转载 2013-05-28 23:09:02 · 736 阅读 · 0 评论 -
模版方法模式
模版方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模版方法模式来处理。模版方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。当不变的和可变的行原创 2013-11-06 13:00:02 · 716 阅读 · 0 评论 -
外观模式
外观模式,又叫门面模式外观模式(facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式在什么时候使用最好?这要分三个阶段来说,首先,在设计初期阶段,应该要有意识的将不同的两个层分离,比如经典的三层架构,就需要考虑在数据访问层和业务逻辑层、业务逻辑层和表示层的层与层之间建立外观Facade,这样可以为复杂的子系统原创 2013-11-06 21:43:00 · 725 阅读 · 0 评论 -
建造者模式
如果需要将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示的意图时,我们需要应用于一个设计模式,‘建造者(Builder)模式’,又叫生成器模式。建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。如果我们用了建造者模式,那么用户就只需指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需知道了。建造原创 2013-11-06 22:16:49 · 754 阅读 · 0 评论 -
观察者模式
观察者模式又叫做发布-订阅(Publish/Subscribe)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。用观察者模式的动机是什么呢?将一个系统分割成一系列相互协作的类有一个很不好的副作用,那就是需要维护相关对象间的一致性。我们不希望为了维持一致性而使各类紧转载 2013-11-08 20:45:44 · 753 阅读 · 0 评论 -
C#反射
发射的格式:Assembly.Load("程序集名称").CreateInstance("命名空间.类名称")只要在程序顶端写上using System.Reflection;来引用Reflection,就可以使用反射。有了反射,我们获得实例可以用下面两种写法://常规写法IUser result=new SqlserverUser();//反射的写法using原创 2013-11-08 23:14:06 · 847 阅读 · 0 评论 -
状态模式
状态模式(State),当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一些列类当中,可以把复杂的判断逻辑简化。当然,如果这个状态判断很简单,那就没必要用‘状态模式’了。状态模式的好处是将与特定状态相关的行为局部化,并且将不同状态的行为分割开来。这原创 2013-11-09 00:06:11 · 720 阅读 · 0 评论 -
适配器模式
适配器模式(Adapter),将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。在软件开发中,系统的数据和行为都正确,但接口不符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况,比如在需要对早期代码复用一些功能等应用上很原创 2013-11-10 23:33:10 · 963 阅读 · 0 评论 -
备忘录模式
备忘录模式(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可使用备忘录恢复内部状态。Originator可根据需要决定Memento存储Originator的哪些内部状态。Memento(备忘录)转载 2013-11-11 00:38:22 · 861 阅读 · 0 评论 -
原型模式
原型模式(Prototype)用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节。对于.NET而言,那个原型抽象类Prototype是用不着的,因为克隆实在是太常用了,所以.Net在System命名空间中提供了ICloneable接口,其中就是唯一的一个方法Clone(),这样就只需要原创 2013-11-04 20:17:10 · 643 阅读 · 0 评论 -
工厂方法模式
简单工厂模式:工厂方法模式:简单工厂和工厂方法的区别:简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,对于客户端来说,去除了与具体产品的依赖。工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。原创 2013-11-04 19:45:20 · 654 阅读 · 0 评论 -
设计模式---Adapter模式
转自:http://blog.youkuaiyun.com/fly542/article/details/6713362首先对适配器模式做个简单的使用说明:在以下各种情况下使用适配器模式:1.系统需要使用现有的类,而此类的接口不符合系统的需要。2.想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。这些源类不一定有很复杂的接口。转载 2013-06-24 21:48:22 · 907 阅读 · 0 评论 -
设计模式----Observer模式
转自:http://blog.youkuaiyun.com/fly542/article/details/6716825在以下任一情况下可以使用观察者模式:1、当一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这二者封装在独立的对象中以使他们可以各自独立的改变和复用2、当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变。3、当一个对象必须通知其它转载 2013-06-24 21:49:13 · 835 阅读 · 0 评论 -
设计模式----Bridge模式
转自:http://blog.youkuaiyun.com/fly542/article/details/6720217原来对bridge模式理解不是很深入,感觉和build模式很相似,今天又看了四人帮的关于bridge模式的描述,有些新的理解先来说下适用性1、不想抽象和实现之间有一个固定的绑定关系。(因为程序在运行时实现部分可以被选择或者切换)。2、类的抽象以及它的实现都转载 2013-06-24 21:49:55 · 859 阅读 · 0 评论 -
设计模式之State
转自:http://www.jdon.com/designpatterns/designpattern_State.htmState模式的定义: 不同的状态,不同的行为;或者说,每个状态有着相应的行为.何时使用?State模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If elseif else 进行状态切换, 如果针对状态的这样判断切换反复出现,我们就要联想到是否转载 2013-10-21 21:03:02 · 657 阅读 · 0 评论 -
策略模式
策略模式是一种定义一些列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合。策略模式的Strategy类层次为Context定义了一系列的可供重用的算法或行为。继承有助于析取出这些算法中的公共功能。策略模式的优点是简化了单元测试,因为每个算法都有自己的类,可以通过自己的接口单独测试。当不同的原创 2013-10-28 22:18:27 · 803 阅读 · 0 评论 -
组合模式
组合模式(Composite),将对象组合成树形结构以表示'部分-整体'的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。原创 2013-11-15 13:35:09 · 888 阅读 · 0 评论 -
装饰模式
装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 Component是定义一个对象接口,可以给这些对象动态地添加职责。ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。Decorator,装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Com原创 2013-11-03 14:59:27 · 710 阅读 · 0 评论 -
代理模式
代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。代理模式的适用场合:1.远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。2.虚拟代理,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。这样就可以达到性能的最优化,比如说打开一个很大的HTML网页时,里面可能有很多的文字和图片原创 2013-11-03 21:49:04 · 729 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式(Abstract Factory),提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂模式的优点:1.易于交换产品系列,由于具体工厂类,例如IFactory factory=new AccessFactory(),在一个应用中只需要在初始化的时候出现一次,这就使得改变一个应用的具体工厂变得非常容易,它只需要改变具体工厂即可使用不同的产品配置。原创 2013-11-08 22:53:25 · 693 阅读 · 0 评论