博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 设计模式学习笔记九 decorator装饰模式
阅读量:5072 次
发布时间:2019-06-12

本文共 1313 字,大约阅读时间需要 4 分钟。

decorator装饰模式
动态的给一个对象添加一些额外的职责
示例代码:
/**
 * 工作接口
 * 
 * @time 下午11:25:59
 * @author retacn yue
 * @Email zhenhuayue@sina.com
 */
public interface Work {
public void insert();
}
/**
 * 插入方形桩
 * @time 下午11:29:08
 * @author  retacn yue
 * @Email  zhenhuayue@sina.com
 */
public class SquarePeg implements Work {
@Override
public void insert() {
System.out.println("方形桩插入");
}
}
/**
 * 装饰模式
 * 
 * @time 下午11:30:48
 * @author retacn yue
 * @Email zhenhuayue@sina.com
 */
@SuppressWarnings("rawtypes")
public class Decorator implements Work {
private Work work;
private ArrayList list = new ArrayList();
/**
* 构造器
*/
@SuppressWarnings("unchecked")
public Decorator(Work work) {
this.work = work;
list.add("挖坑");
list.add("钉木板");
}
@Override
public void insert() {
newMethod();
}
public void newMethod() {
otherMethod();
work.insert();
}
// 增加额外的功能
private void otherMethod() {
ListIterator iterator = list.listIterator();
while (iterator.hasNext()) {
System.out.println(((String) iterator.next()) + "正在进行");
}
}
}
/**
 * 测试装饰模式
 * 
 * @time 下午11:40:07
 * @author retacn yue
 * @Email zhenhuayue@sina.com
 */
public class TestDecorator {
public static void main(String[] args) {
Work squarePeg=new SquarePeg();
Work decorator=new Decorator(squarePeg);
decorator.insert();
}
}

转载于:https://www.cnblogs.com/retacn-yue/archive/2012/10/08/2761222.html

你可能感兴趣的文章
js 过滤敏感词
查看>>
poj2752 Seek the Name, Seek the Fame
查看>>
软件开发和软件测试,我该如何选择?(蜗牛学院)
查看>>
基本封装方法
查看>>
bcb ole拖拽功能的实现
查看>>
生活大爆炸之何为光速
查看>>
bzoj 2456: mode【瞎搞】
查看>>
[Typescript] Specify Exact Values with TypeScript’s Literal Types
查看>>
[GraphQL] Reuse Query Fields with GraphQL Fragments
查看>>
Illustrated C#学习笔记(一)
查看>>
理解oracle中连接和会话
查看>>
两种最常用的Sticky footer布局方式
查看>>
Scrapy实战篇(三)之爬取豆瓣电影短评
查看>>
HDU 5510 Bazinga KMP
查看>>
[13年迁移]Firefox下margin-top问题
查看>>
Zookeeper常用命令 (转)
查看>>
【CF888E】Maximum Subsequence 折半搜索
查看>>
Java程序IP v6与IP v4的设置
查看>>
RUP(Rational Unified Process),统一软件开发过程
查看>>
eclipse下的tomcat内存设置大小
查看>>