设计模式
企鹅20133
这个作者很懒,什么都没留下…
展开
-
代理模式
使用代理模式创建对象,让代理的对象控制对某对象的访问,可以是远程的对象,创建开销大的对象,或需要安全控制的对象 远程代理: 远程代理代表远程的一个对象,调用代理的方法,让代理通过网络转发到远程执行,再将结果通过网络返回 虚拟代理: 创建开销大的对象的时候,只有我们真正需要的时候才创建他,创建之前由代理来扮演对象本身。代理就会直接将请求委托给对象。 例子: 比如显示CD...原创 2017-11-09 21:15:08 · 65 阅读 · 0 评论 -
状态模式
状态模式把状态的改变和对应状态下的操作放到了一起, package com.roc.state; public class Context { private State state; public Context(State state){ this.state=state; } public State...原创 2017-11-09 18:16:06 · 54 阅读 · 0 评论 -
组合模式
组合模式屏蔽了部分和整体的差异,让单个对象和组合对象的使用具有一致性。 涉及角色: 1.Component 是组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默认行为。声明一个接口用于访问和管理Component子部件。 2.Leaf 在组合中表示叶子结点对象,叶子结点没有子结点。 3.Composite 定义有枝节点行为,用来存储子部件,在Component接口中实现...原创 2017-11-09 17:47:48 · 50 阅读 · 0 评论 -
模板方法模式
1.模板方法定义了一个算法的步骤,并允许子类为一个或多个步骤提供不同的实现 public abstract class AbstractClass { // 一些抽象行为,放到子类去实现 public abstract void PrimitiveOperation1(); public abstract void Prim...原创 2017-11-09 02:02:36 · 62 阅读 · 0 评论 -
适配器模式
1.适配器实现了目标接口,并持有被适配者的实例 2.代码示例: TurkeyAdapter是一个适配器, 实现了目标Duck接口,传入一个Turkey对象 Duck TurkeyAdapter =new TurkeyAdapter(turkey); 2.适配器好文链接 http://blog.csdn.net/wuwei1984100/article/d...原创 2017-11-07 21:49:11 · 47 阅读 · 0 评论 -
命令模式和外观模式和迭代器模式
命令模式: 1.归一化接口,用同一个方法,调用不同的对象,执行不同的任务 比如: 打开这个操作,打开空调,打开冰箱,打开门,每个操作都有各自不同的地方,我们可以这么做 **定义一个Command接口 public interface Command() { public void open(); } **具体的对象,实现Comman...原创 2017-11-07 20:57:38 · 78 阅读 · 0 评论 -
委托模式
1.任务: 给鸭子增加一个飞行的功能 方式一: 接口Duck中声明fly(),然后在子类中具体实现 弊端: 每当新增一种方法,都会影响现有的鸭子类, 方法二: 将变化的,非共性的功能抽取出来,用接口来实现,需要哪个功能就实现哪个接口 弊端:代码无法复用,每个集成Flyable的类都要重写一遍fly()方法 方法三: 用委托的办法,创建一个飞行行为接口FlyBehavior,然后...原创 2017-08-16 20:58:25 · 42 阅读 · 0 评论 -
建造者模式
假如你组装一台电脑,电脑是由许多部分组成的(cpu,主板,显卡,声卡,网卡,键盘,鼠标),虽然每个部分有许多选择,我们可以组装成百上千种不同的电脑,但是我们可以将其中的一些共性抽取出来,构成一种固定的模板。 代码举例: public interface Builder { void buildPartA(); void buildPartB(); ...原创 2016-08-22 01:57:11 · 57 阅读 · 0 评论 -
装饰者模式
通俗理解: class A 持有 class B的实例,对class B做扩展 例如: class B中,有个getName()方法, return “B” class A中,getName() --》 B.getName()+“A” class A对class B的getName方法进...原创 2015-09-23 12:59:52 · 52 阅读 · 0 评论 -
单例设计模式
单例设计模式的目标 类只有一个实例对象 实现方法:构造方法私有 提供全局访问点 实现方法:静态方法获取实例对象 **构造方法私有,从而在类的外部不能new对象,这样来保障只有一个实例对象 代码示例: private singleton() //构造方法 {} **构造方法一...原创 2015-09-22 18:11:35 · 48 阅读 · 0 评论 -
工厂模式细致理解
工厂模式存在的意义: 对重复使用的复杂对象进行封装,一行代码new出来 1.工厂模式 1.1 工厂方法模式 (一个类专门管理构造方法) 1.1.1普通工厂模式(工厂类中只有一个方法,根据方法传入的参数创建不同对象) 1.1.2多工厂模式(工厂类中有多个方法,每个方法创建不同的对象,避免打字母出错) 1.1.3静态工厂模式(将工厂类中的方法变成静态方法) 1.2 ...原创 2015-04-08 20:35:17 · 61 阅读 · 0 评论 -
原型模式
原型模式(深/浅拷贝) 根据一个原始的对象,复制出新的对象 意义: 1.一般情况下,性能比new一个对象更高 2.对客户端隐藏具体的创建细节,比如不需要传递构造参数 浅复制: 值类型完全复制, 引用类型只复制引用,被引用的对象还是同一个 深复制: 值类型完全复制,引用类型和被引用的对象也复制一份 ...原创 2018-01-28 17:19:10 · 98 阅读 · 0 评论