Java进阶笔记(装饰者模式)
2016-05-18 21:41
267 查看
Java开发模式之装饰者(Decorator)模式
2016/4/27 20:21:02 Seventeen Wen对象增强的手段:
继承
装饰者模式
动态代理
什么时候使用装饰模式?
需要扩展一个类的功能,或者给一个类加附加责任。需要动态地给一个对象增加功能,这些功能可以再动态地撤销。比如给文件加密的操作。
需要增加有一些基本功能的排列组合而产生的非常大量的功能,从而是继承关系变得不现实。
class 配料类{} class 腊肠 extends 配料类{} class 肥牛 extends 配料类{} class 蛋 extends 配料类{} 配料 a = new 腊肠(); 配料 b = new 肥牛(a);// 加腊肠和加肥牛 配料 c = new 蛋(b);//加腊肠,加肥牛和加蛋
DBPC中的应用
package com.seventeenwen.decorator // 这个类实现了Connection接口,有Connection的所有方法 public class ConnectionWrapper implements Connection{ // 底层对象,需要被增强的对象 protected Connection con; //通过构造器来传递底层对象 public ConnectionWrapper(Connection con){ this.con = con } public void close() throws SQLException{ con.close(); } ....... ....... } ---------------------------------------------------------------------- package com.seventeenwen.decorator public class MyConnection extends ConnectionWrapper{ public MyConnection(Connection con){ super(con); } public void close() throws SQLException{ system.out.print("增强的close()"); super.close(); } } Connection con = dataSource.getConnection(); Connection con1 = new MyConnection(con); //调用普通的Close() con.Close(); //调用增强的Close(); con1.Close();
相关文章推荐
- 如何解决java线程中的资源共享的问题
- 【转】springmvc源码分析链接
- java之Intager比较
- HDU 1850 —— Being a Good Boy in Spring Festival
- Java集合类的继承关系
- Servlet
- java知识点及初学类
- Java单例模式详解
- java程序读取文件内容打印控制台
- Java基础简单的动态绑定问题
- 利用java与链表的实现与应用
- Java文件流 字节流和字符流
- 深入浅出: Java回调机制(异步)
- JAVA获取本机IP地址
- java中重载和重写
- JAVA-007前面所学总结加深
- java工具类-排序介绍
- Java基础 - 1.1-Java 语言特性及其基本语法
- Java集合类的混淆点总结(二)
- LeetCode上与树相关的问题