设计模式
dyf20081124
这个作者很懒,什么都没留下…
展开
-
适配器模式
适配器模式 定义:将一个类转换成客户希望看到的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。简单来说:你现在有一个A的对象,但是现在需要B接口的对象,通过适配器模式可将A伪装成一个B的对象,达到目的,A的对象、B接口在功能上要类似。核心便是转化二字。 角色:目标接口,适配器,被适配接口 分类:有对象适配器和类适配器两种。类适配器是采用多重继承的方式,使适配转载 2014-08-14 20:41:41 · 251 阅读 · 0 评论 -
状态模式
状态模式 定义:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。 角色: context应用环境:内部持有多个state的引用以及代表当前状态的应用state状态接口:定义了所有具体状态的共同接口,任何状态都要实现这个接口,以便,状态之间相互替代。concreteState具体状态:处理来自context的请求,每个concreteState都提供了自己对于请求的实转载 2014-08-14 20:43:14 · 176 阅读 · 0 评论 -
策略模式
策略模式 定义:属于对象的行文模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使它们可以相互替换。策略模式使得算法可以在不影响客户端代码的情况下发生变化。 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法, 并转载 2014-08-14 20:44:21 · 289 阅读 · 0 评论 -
命令模式
命令模式 定义:属于行为模式,将一个请求封装成对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。将命令的请求者与执行者解耦,请求者不需要知道执行的细节 角色: 命令接口,命令子类,调用者,执行者 概括:命令接口定义一个简单的方法execute,命令的子类包含一个执行者的实例,execute中调用执行者相应的方法来完成某个功能或动转载 2014-08-14 20:40:42 · 222 阅读 · 0 评论 -
观察者模式
观察者模式又名发布-订阅模式,定义了对象之间的一对多依赖,多个对象同时监听一个对象,当被监听对象的状态发生改变时,它的所有依赖者都会收到通知并自动更新,被监听对象称为主题suject,监听对象称为观察者observer。 观察者模式结构如下(网上找的图): 简单来说,observer必须实现update方法,来接收suject状态变化时的通知及更新。suject维护一个转载 2014-08-14 20:35:24 · 280 阅读 · 0 评论 -
装饰者模式
装饰者模式:动态地将责任附加到对象上,若要扩展对象,装饰者模式提供了比继承更弹性的替代方案 要点: 装饰者与被装饰者拥有共同的超类,继承的目的是继承类型,而不是行为 装饰者包含一个超类的对象,这样,可以在被装饰者行为前或者行为后加上新的行为,甚至取代原有的行为 装饰者会使程序中出现很多小类,增加使用难度 使用场景:对象由主体+许多可选的部件或者功能构成,使用继承或者接口会产生转载 2014-08-14 20:36:01 · 224 阅读 · 0 评论 -
代理模式
代理模式 定义:为一个对象提供一个替身或占位符以控制对这个对象的访问。被代理的对象可以是远程的对象、创建开销大的对象、需要安全控制的对象。 角色: subject:真正对象与代理对象都要实现的接口,允许客户可以像处理真正对象一样处理代理对象proxy:代理对象,并持有真正对象的引用,必要时可以将请求转发给真正对象。realSubject:真正对象,代理对象控制对其访问 类型:转载 2014-08-14 20:45:51 · 201 阅读 · 0 评论 -
模板方法模式
模板方法模式 定义:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使的子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。将主要的方法定义为final,防止子类修改算法骨架,将子类必须实现的方法定义为abstract。而普通的方法(无final或abstract修饰)则称之为钩子。 钩子作用: 1)作为可选内容,子类可以重写或者置之不理 2)让子类有机会对模板方转载 2014-08-14 20:40:24 · 224 阅读 · 0 评论 -
java 23种设计模式及具体例子
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代 码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用 设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应转载 2014-08-15 10:59:07 · 323 阅读 · 0 评论 -
组合模式
组合模式 定义:允许你将对象组合成树形来表达结构来表现“整体/部分”层次结构。组合能让用户以一致的方式处理个别对象及对象组合。 角色: component :是组合中对象的接口,适当情况下,实现所有类共有方法的默认行为,声明一个接口,用于管理和访问component子部件composite:定义具有叶节点的组件的行为leaf:定义叶节点的行为client:使用compon转载 2014-08-14 20:41:38 · 224 阅读 · 0 评论 -
工厂模式
工厂模式有三种:简单工厂模式、工厂方法模式、抽象工厂模式 简单工厂 定义:类创建模式,用来创建其他类的实例,通过不同的特征返回不同类的实例,被返回类具有相同的父类 角色: 产品的父类 产品的具体类 工厂类 优点: (1)工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅“消费”产品;简单工厂模式通过转载 2014-08-14 20:38:32 · 215 阅读 · 0 评论