![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 63
ydpl2007
这个作者很懒,什么都没留下…
展开
-
设计模式之门面模式
外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行。 代码:public class Test { public static void main(String[] args) { // old: Light l = new Light(); Alarm a = new Alarm(); l.turnOn(); a.ac原创 2012-05-02 23:22:36 · 313 阅读 · 0 评论 -
设计模式之命令模式
把命令请求和命令执行解耦,关键是抽象出Command接口。// 命令模式public class Test7 { public static void main(String[] args) { // 客户端负责指定命令的接受者 Command c1 = new ConcreteCommand(new ConcreteReceiver1()); // 请求原创 2012-12-12 10:25:31 · 501 阅读 · 0 评论 -
设计模式之原型模式和迭代器模式
1. 原型模式:根据已有对象复制出一模一样的对象出来。 java里面: 1) 实现Cloneable接口 2) 覆盖Object的clone()方法 2. 迭代器模式: 把集合数据的存储和对集合数据的遍历分开。 java里面实现:具体集合类都继承自Collection接口,迭代器都继承自Iterator接口;具体集合类通过覆盖Collection接口的iterator()方法返原创 2012-12-11 15:33:27 · 447 阅读 · 0 评论 -
设计模式之享元模式
享元模式的目的是复用。复用那些细粒度的小对象,从而减少系统中对象的数量,提高系统性能。模式的关键: 1. 分清内蕴状态(可共享,对象一旦创建就不能改变)和外蕴状态(不可共享,又外部环境负责维护)2. FlyweightFactory工厂的存在把获取享元对象的过程封装起来。该工厂一般设计为单例模式。分为单纯享元模式和复合享元模式。一、单纯享元模式1.1 不带外原创 2012-12-10 16:44:46 · 337 阅读 · 0 评论 -
设计模式之组合模式
适用于:树结构。整体部分结构。典型例子:文件夹和文件;JSON库的设计;Swing的容器和组件;import java.util.ArrayList;import java.util.List;public class Test3 { public static void main(String[] args) { Component l1 = new Leaf原创 2012-12-08 17:14:30 · 292 阅读 · 0 评论 -
设计模式之状态模式
封装对象的状态以及对应的行为。一种对if-else的重构手法。public class Test { /** * @param args */ public static void main(String[] args) { FeelingState sad = new SadState(); FeelingState happy = new HappySta原创 2012-12-05 17:58:06 · 290 阅读 · 0 评论 -
设计模式之装饰模式
以对客户端透明的方式(包装器和被包装的类实现统一接口)、通过排列组合的方式 为已有对象添加新的功能或增强又有功能。public class Test { /** * @param args */ public static void main(String[] args) { // 透明,面向抽象编程 c-->ConcreteDecorator1-->C原创 2012-12-05 10:20:16 · 295 阅读 · 0 评论 -
设计模式之访问者模式
对异构容器的各个元素进行有区别的访问(操作)。把数据(异构容器的元素)和操作(访问器)分离出来,使之各自独立演化。方便新增操作,不方便新增数据。每个元素可以接受不同访问者的访问,每个访问者可以访问容器内的所有元素(抽象访问者规定了所有可访问的元素)。public class Test4 { /** * @param args */ public static原创 2012-12-05 14:21:28 · 286 阅读 · 0 评论 -
设计模式之备忘录模式
主要用来保存对象状态,并提供恢复机制。import java.util.Stack;public class Test { /** * @param args */ public static void main(String[] args) { Caretaker ct = new Caretaker(); Originator originator = ne原创 2012-12-01 17:53:42 · 318 阅读 · 0 评论 -
设计模式之责任链模式
责任链模式的核心思想是让请求对象(Request)沿着链(chain)按照一定顺序(ordered)依次传递下去,链上的每个处理器(Filter)都有机会去处理请求(request)。 客户端只需把请求传递给链(chain)上的第一个处理器(filter)即可,至于被谁处理,客户端不care。/** * Test.java * * @author zhanghui * */原创 2012-11-27 15:45:59 · 384 阅读 · 0 评论 -
设计模式之桥接模式
public class Test { public static void main(String[] args) { Animal a1 = new WarmAnimal(new Dog()); // 温顺的狗 Animal a2 = new CoolAnimal(new Dog()); // 冷酷的狗 Animal a3 = new WarmAnimal(new Pig())原创 2012-05-02 23:20:10 · 1948 阅读 · 0 评论 -
设计模式之命令模式
public class Test { public static void main(String[] args) { King king = new King(); Slave slave = new Slave(); king.order(slave); }}interface Command { void execute(); void u原创 2012-05-02 23:26:13 · 303 阅读 · 0 评论 -
设计模式之状态模式
状态模式是对象的行为模式。状态模式运行一个对象在其内部状态改变的时候改变其行为。 代码:public class Test { public static void main(String[] args) { Person p = new Person(); p.smile(); p.eat(); p.sleep(); p.setState(n原创 2012-05-02 23:27:25 · 355 阅读 · 0 评论 -
设计模式之调停者模式
调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显引用,从而使他们可以较松散的耦合。但这些对象中的某些对象之间的作用发生改变时,不会立即影响到其他的一些对象之间的相互引用。从而保证这些相互作用可以彼此独立的变化。 代码:public class Test { public static void main(String[] args) { Co原创 2012-05-02 23:24:19 · 334 阅读 · 0 评论 -
设计模式之建造者模式
隔离产品的建造过程和产品的最终显示。客户端只需传入不同的产品类型,不care具体生产建造过程,并得到最终成型的产品。适用于:产品比较复杂,由有机的几部分组成,且对建造顺序有一定要求。相同的步骤(传入不同的参数)可以造出不同的产品。public class Test2 { /** * @param args */ public static void main(String[]原创 2012-12-05 10:03:39 · 424 阅读 · 0 评论