- 1
- 0
- 约2.11万字
- 约 34页
- 2018-03-04 发布于浙江
- 举报
[计算机软件及应用]计算机编程设计模式
常用设计模式
设计模式的分类:
设计模式可以分为三大类,分别是创建型设计模式、行为型设计模式以及结构型设计模式。
创建型的设计模式:
单例模式(Singleton)
构建模式(Builder)
原型模式(Prototype)
抽象工厂模式(Abstract Factory)
工厂方法模式(Factory Method)
行为设计模式:
策略模式(Strategy)
状态模式(State)
责任链模式(Chain of Responsibility)
解释器模式(Interpreter)
命令模式(Command)
观察者模式(Observer)
备忘录模式(Memento)
迭代器模式(Iterator)
模板方法模式(Template Method)
访问者模式(Visitor)
中介者模式(Mediator)
结构型设计模式:
装饰者模式(Decorator)
代理模式(Proxy)
组合模式(Composite)
桥连接模式(Bridge)
适配器模式(Adapter)
蝇量模式(Flyweight)
外观模式(Facade)
各种模式的表述:
单例模式(Singleton):确保有且只有一个对象被创建。
抽象工厂模式(Abstract Factory):允许客户创建对象的家族,而无需指定他们的具体类。
工厂方法模式(Factory Method):由子类决定要创建的具体类是哪一个。
装饰者模式(Decorator):包装一个对象,以提供新的行为。
状态模式(State):封装了基于状态的行为,并使用委托在行为之间切换。
迭代器模式(Iterator):在对象的集合之中游走,而不暴露集合的实现。
外观模式(Facade):简化一群类的接口。
策略模式(Strategy):封装可以互换的行为,并使用委托来决定要使用哪一个。
代理模式(Proxy):包装对象,以控制对此对象的访问。
适配器模式(Adapter):封装对象,并提供不同的接口。
观察者模式(Observer):让对象能够在状态改变时被通知。
模板方法模式(Template Method):有子类决定如何实现一个算法中的步骤。
组合模式(Composite):客户用一致的方法处理对象集合和单个对象。
命令模式(Command):封装请求成为对象。
1、装饰模式
装饰模式是对对象功能增强时,平时使用继承的一种替代方案
二.组成部分 :
1. 抽象构件:原始的功能接口
2. 具体构件:具体的原始功能类
3. 装饰角色:持有具体构件类的对象,以便执行原有功能
4. 具体装饰:具体扩展的功能在这里
三.例子代码 : 使用装饰模式来演示一个对”行走”功能扩展的例子(听音乐+行走和唱歌+行走)
1. 抽象构件
[java] view plaincopyprint?
package com.eekq.decorator;
public interface Component {
/** 原始接口 */
public void go();
}
2. 具体构件
[java] view plaincopyprint?
package com.eekq.decorator;
public class ConcreteComponent implements Component {
public void go() {
System. out .println( 行走 );
}
}
3.装饰角色来了
[java] view plaincopyprint?
package com.eekq.decorator;
public class Decorator implements Component {
/** 持有私有的原始构件 */
private Component component ;
/** 构造子,委派给原始构件 */
protected Decorator(Component component) {
this . component = component;
}
/**调用原始构件功能,通常就可直接把扩展功能加在此方法中*/
public void go() {
this . component .go();
}
}
4.具体装饰(这里演示了两种扩展的情况,走路+听音乐和唱歌s)
(1).
[java] view plaincopyprint?
package com.eekq.decorator;
public class ConcreteDecoratorListen extends Decorator {
/** 构造子,相关初始化 */
public ConcreteDecoratorListen(Compon
原创力文档

文档评论(0)