![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
iteye_11450
这个作者很懒,什么都没留下…
展开
-
用枚举实现工厂模式
[code="java"]public enum AgentType { HTTP("http") { public Agent newInstance() { return new HttpAgent(); } }, WEBSERVICE("webSerivce") { public Agent newInstance() { return ne...原创 2012-09-27 16:55:12 · 254 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式就是用来实现创建一系列的产品解决方案的模式。跟工厂方法不同,工厂方法是争对单一产品的创建,比如以前例子中的手机,都是创建这个产品,而抽象工厂不但要创建手机,而且还要创建对应的耳机,而且要去创建的2个或者多个对象是有联系的。下面看例子:1、抽象工厂A 对一系统产品创建的接口[code="java"]public interface AbstractFactory { ...原创 2012-11-07 23:37:27 · 62 阅读 · 0 评论 -
工厂方法模式
工厂方法模式就是父类不知道具体子类的情况下实现自己的功能。这个模式跟IOC有异曲同工之处。IOC的接口也是不知道其实现,然后直接使用其功能。IOC的子类是通过反射来获取的。而且工厂方法子类是后面NEW出来的的。先看具体的实现1、接口[code="java"]public interface Phone { public void call();}[/co...原创 2012-11-06 23:47:53 · 72 阅读 · 0 评论 -
工厂模式
简单工厂模式:很容易理解的设计模式首先看代码1、要生产的接口[code="java"]public interface Phone { public void call();}[/code]2、生产东西的实现A[code="java"]public class Iphone implements Phone { @Override publi...原创 2012-11-04 20:01:14 · 83 阅读 · 0 评论 -
命令模式
命令模式:将命令对象封装起来,现实请求对象与接收对象的彻底分离。一般命令模式涉及到的几个对象1、接收对象Receiver[code="java"]public class Receiver { private int money; public void action(int newMoney) { this.money = newMoney; Sy...原创 2012-10-31 00:05:21 · 81 阅读 · 0 评论 -
职责链模式
职责链模式很形象的一个模式,就好比请假一样,如果自己不能审批就要交给上级。所以这个行为模式很好理解实现如下:1、责任链抽象类[code="java"]public abstract class Handler { protected Handler handler; public void setSuccessor(Handler handler) { t...原创 2012-10-29 21:09:23 · 81 阅读 · 0 评论 -
代理模式
代理模式 通过代理类来添加新的功能1、代理接口[code="java"]public class Student implements Person { @Override public void talk() { System.out.println("talking"); }}[/code]2、被代理类A[code="java"]pub...原创 2012-10-25 22:14:16 · 67 阅读 · 0 评论 -
享元模式
享元模式享元模式简单的来说就是一种为了避免在我们的系统中产生大量重复对象的方法。它缓存生成后的对象,让后面的使用者不会生成重复的对象。实践中很少使用,实践中都是失去其他的缓存手段。1、要缓存的类[code="java"]public class LoveBook { private final String index; public LoveBook(String...原创 2012-10-24 23:54:30 · 78 阅读 · 0 评论 -
外观模式
外观模式是一种很好理解的方式。设计一个Facade类,由它来直接与调用方打交道。这样可以对调用方与实现方进行解耦。具体代码1、Facade类[code="java"]public class MoveFacade { public void onTrain() { new Bus().take(); new Car().drive(); } publ...原创 2012-10-23 23:14:28 · 54 阅读 · 0 评论 -
装饰模式
装饰模式 就是给一个类添加其他的功能。这个模式跟代理模式相当的相识。看代码1、基础接口[code="java"]public interface Phone { public void call();}[/code]2、要装饰的类[code="java"] @Override public void call() { System.out....原创 2012-10-21 21:49:01 · 59 阅读 · 0 评论 -
合成模式
合成(Composite)模式有时又叫做部分-整体(Part-Whole)模式。 合成模式将叶子对象合成到树的结构中,可以用来描述整体与部分的关系。这样可以任意的添加叶子节点。1、模式涉及到的三个角色 1)抽象构件(Component):这是一个抽象(也可以使抽象类)角色,它给所有参加合成的对象规定抽象方法 2)叶子构件(Leaf):参加合成的树叶对象。一个树叶没有下级的子对象...原创 2012-10-21 20:58:24 · 78 阅读 · 0 评论 -
访问者模式
访问者模式这个模式网上有很多文章其实很多的文章都容易让人混乱。尤其是在被访问者上添加对象,更有甚者是添加ObjectStructure首先我说明下我对访问模式的理解看代码会很容易理解1、访问者接口[code="java"]public interface Visitor { void visit(Home myhome); }[/code]很简单的方法 ...原创 2012-10-11 23:23:27 · 64 阅读 · 0 评论 -
适配器模式
这章说下适配器模式这个模式很好理解简单的来说[color=red]将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作[/color]还是用例子说明A相机只能用SD卡,但是我手上只有TF卡,怎么才能使相机工作呢?这时候我就去买个一个卡套(当然更多的同学是直接买个SD卡。。。)卡套就相当于一个适配器代码如下1、SD卡...原创 2012-10-11 22:08:22 · 71 阅读 · 0 评论 -
桥梁模式
桥梁模式跟上一章介绍的策略模式比较相似最大的区别就是原始类是一个抽象类,我们可以这样理解[color=red]桥梁模式主要是把行为与属性分离。而策略模式只是一个简单的行为模式[/color]。所以通过以下的例子可以很好的看出差异:1、原始类A[code="java"]public abstract class Human { private WorkBehavior wo...原创 2012-10-09 22:39:54 · 55 阅读 · 0 评论 -
策略模式
策略模式是把对象A中变化的部分抽象出来成为接口B(抽象类也可以实现),然后根据不同的策略来实现B类(抽象类的话就为继承与实现)。写个简单的例子1、原始类A[code="java"]public class Human { private WorkBehavior workBehavior; public void sleep() { S...原创 2012-10-09 14:48:40 · 64 阅读 · 0 评论 -
原型模式
原型模式就是通过clone来实现生成新对象的方法。好处就是可以减少构造函数的重新生成,而且可以复制另外一个类的方案下面用代码说明下1、CAT[code="java"]public class Cat implements Cloneable { public int legs; public Name name; public int getLegs()...原创 2012-11-15 23:37:30 · 77 阅读 · 0 评论