设计模式
文章平均质量分 70
gsfw2010
这个作者很懒,什么都没留下…
展开
-
简单工厂模式
简单工厂模式说明:当需要创建类的实例时却不知道到底应该创建哪一个类时,选择用简单工厂模式。专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。其实质是有一个工厂累根据传入的参量,动态决定应创建出哪一个累的实例。实例说明1.薪资管理系统假定公司薪资分为技术人员(月薪),市场营销人员(底薪+提成),经理(年薪+股份)三种运算算法,如果我们把三种运算写在一个类中,原创 2012-02-28 22:06:01 · 283 阅读 · 0 评论 -
建造者模式(Builder Pattern)
建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以创建它们,用户不知道内部具体的构建细节。Builder:抽象建造者(1)为创建 一个Product对象的各个部件指定抽象接口。ConcreteBuilder:具体建造者原创 2012-03-19 23:03:28 · 370 阅读 · 0 评论 -
桥接模式(Bride Pattern):
桥接模式(Bride Pattern):将抽象部分与它的实现部分分离开来,使它们都可以独立的变化。 /// /// 抽象实现类 /// abstract class Implementor { public abstract void Operation(); } /// /// 具体实现原创 2012-04-06 22:18:18 · 2370 阅读 · 0 评论 -
单例模式(Sigleton Pattern)
单例模式(Sigleton Pattern):保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但它不能纺织你实例化多个对象,一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其它实例可以被创建,并且它可以提供一个访问该实例的方法。 public class Sigleton {原创 2012-04-06 22:15:53 · 515 阅读 · 0 评论 -
抽象工厂模式(Abstract Factory Pattern)
抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。AbstractFactory:抽象工厂。声明生成抽象产品的方法ConcreteFactory:具体工厂。执行生成抽象产品的方法,生成一个具体的产品。AbstractProduct:抽象产品。为一种产品声明接口。Product:具体产品类。定义具原创 2012-03-21 23:09:43 · 512 阅读 · 0 评论 -
观察者模式(Observer Pattern)
观察者模式(Observer Pattern):定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生改变时,会通知所有观察者对象,使它们能够自动更新自己。Subject类:被观察对象(1)它把所有对观察者的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观测者对象。ConcreteSubjec原创 2012-03-21 23:05:44 · 470 阅读 · 0 评论 -
职责链模式(Chain Of Responsibility)
职责链模式(Chain Of Responsibility)动机(Motivate): 在软件构建过程中,一个请求可能被多个对象处理,但是每个请求在运行时只能有一个接受者,如果显示指定, 将必不可少地带来请求发送者与接受者的紧耦合。 如何使请求的发送者不需要指定具体的接受者?让请求的接受者自己在运行时决定来处理请求,从而使两者解耦。意图(Intent):原创 2012-04-10 22:19:32 · 366 阅读 · 0 评论 -
命令模式(Command Pattern)
命令模式(Command Pattern)将一个请求封装为一个对象,从而使你可用不同的请求对客户进许参数化;对请求排队或记录请求日志,以及支持撤销的操作。 /// /// Command类:抽象命令类,类中只需要确定命令最终执行者Receiver即可 /// 声明执行操作的接口 /// abstract class Command原创 2012-04-10 22:16:37 · 400 阅读 · 0 评论 -
中介者模式(Mediator Pattern)
中介者模式(Mediator Pattern)用一个中介者对象来封装一系列对象交互。中介者使得各对象不需要相互引用,从而使其耦合松散,而且可以独立的改变它们之间的交互。依赖关系的转化 动机(Motivate): 在软件构建过程中,经常会出现多个对象互相关联交互的情况,对象之间常常会维持一种复杂的引用关系, 如果遇到一些需求的更改,这种直接的引用关系将面原创 2012-04-12 22:17:04 · 422 阅读 · 0 评论 -
原型模式(Prototype Pattern)
原型模式(Prototype Pattern):用原型实例创建指定的对象的种类,并且通过拷贝这些原型创建新的对象。Prototype:原型类,声明一个克隆自身的接口。ConcretePrototype:具体的原型类,继承Prototype,实现一个克隆自身的操作。Clinet:让一个原型克隆自身从而创建一个新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需原创 2012-03-12 23:03:23 · 506 阅读 · 0 评论 -
组合模式(Composite Pattern)
组合模式(Composite Pattern):将对象组合成树形结构以表示“部分”-“整体”的层次结构。组合模式使得用户对单个对象的处理和组合复杂的对象处理具有一致性。/// /// Component为组合对象声明接口,在适当的情况下,实现所有类共有接口的默认行为。 /// 声明一个接口用于访问和管理Component的子部件 /// ab原创 2012-03-28 22:51:31 · 285 阅读 · 0 评论 -
设计模式学习
09年9月参加工作,到现在也两年多了,但总感觉自己的能力没有达到质的飞跃,一些东西还是处于会与不会,懂与不懂之间,这个坎儿能难迈过去。前段时间买了本《大话设计模式》,看了一点儿后有种茅塞顿开、豁然开朗的感觉。在这儿把自己所学与理解的东西写出来与大家分享,希望对也有我这种情况的同仁们有点儿帮助,也希望大家多提意见。本人写文字功能不是很好,所以以后的文章中多会以代码的形式体现。废话也不多说了,接下来就原创 2012-02-28 21:47:27 · 273 阅读 · 0 评论 -
策略模式
策略模式(Stratergy):定义了算法的家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的用户。【DP定义】从概念上来说,所有的算法完成的工作都是相同的,只是实现不同,策略模式可以以相同的方式调用不同的算法,减少了各种算法类与使用算法类之间的耦合。应用场合:不同的时间或者不同的情况下使用不同的业务规则时可以考虑使用策略模式。实例:商场收银软原创 2012-03-03 23:41:38 · 702 阅读 · 0 评论 -
装饰模式
注:信息来源《大话设计模式》 装饰模式(DecoratorPattern):动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更灵活。Component:是定义一个对象接口,可以给这些对象动态的添加职责;ConcreteComponent:是定义了一个具体的对象,也可以给这个对象添加一些职责;Decorator,装饰抽象类,继承了Component,维原创 2012-03-07 22:08:30 · 458 阅读 · 0 评论 -
代理模式
代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问。客户端调用时直接使用代理来访问。结构说明(结构图略)Subject类:定义了RealSubject和Proxy的公用接口,这样就在任何使用RealSubject的地方都可以用Proxy类代理访问。RealSubject类:定义了Proxy所代表的真实实体Proxy类:保存一个引用使得代理可以访原创 2012-03-07 23:21:08 · 313 阅读 · 0 评论 -
备忘录模式(Memento Pattern)
备忘录模式(Memento Pattern):在不破环封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象回复到保存前的状态。/// /// Originator:负责创建一个备忘录(Memento),用以记录当前时刻它的内部状态,并可以使用备忘录回复 /// 内部状态。Originator可根据需要决定Memento存储Or原创 2012-03-27 22:27:37 · 783 阅读 · 0 评论 -
适配器模式(Adapter Pattern)
适配器模式(Adapter Pattern):将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原来由于接口不兼容而不能一起工作的那些类可以一起工作。/// /// Target类:这是客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。 /// public class Target { publi原创 2012-03-27 22:29:31 · 320 阅读 · 0 评论 -
状态模式(State Pattern)
状态模式(State Pattern):当一个对象的内在状态变化时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态转换的条件过于复杂时的情况。把状态的判断逻辑移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简单化。/// /// 抽象状态类,定义一个接口以封装与Context的一个特定状态相关的行为 /// 包含Cont原创 2012-03-27 22:31:56 · 348 阅读 · 0 评论 -
工厂方法模式
工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例延迟到其子类。工厂方法模式是简单工厂模式的的抽象和推广。在简单工厂模式中,一个工厂类处于对产品类进许实例化的中心位置,它知道每一个产品类的细节,并决定何时哪一个产品类应当被实例化。简单工厂模式的优点是能够使客户端独立于产品的创建过程,并且在系统中原创 2012-03-11 22:43:58 · 357 阅读 · 0 评论 -
SRP:单一职责原则
SRP:单一职责原则1.定义:一个类应该只有一个发生变化的原因。 2.分析:如果一个累承担了多于一个的职责,那么引起它变化的原因就会有多个,就等于把这些职责耦合在了一起。一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭到意想不到的破坏。 3.定义职责:在SRP中,我们把职责定义为变化的原因,如果你能想到多于一个的动机去改原创 2012-04-16 22:09:45 · 5878 阅读 · 2 评论