设计模式:专门为解决某一类问题而编写的固定格式的代码。
1.装饰者固定结构:接口A ,已知的实现类C,需要装饰的设计类B
2.设计步骤:
(1.)创建类B,并且实现接口A;
(2.) 提供类B的构造方法,参数类型为A,用于接收A接口的其他实现类(C)
(3.) 给类型B添加类型A的成员变量,用于存放A接口的其他实现类
(4.)增强需要的方法
(5.)实现不需要增强的方法,方法体重调用成员变量存放的其他实现类对应的方法
/**
* 装饰者设计模式
* @author yindj
*
*/
public class MyConnection implements Connection{
private Connection conn = null;
private LinkedList<Connection> pool;
public MyConnection(Connection conn) {
this.conn = conn;
}
public MyConnection(Connection conn,LinkedList<Connection> pool) {
this.conn = conn;
this.pool = pool;
}
/**
* 需要增强的方法
* @throws SQLException
*/
@Override
public void close() throws SQLException {
pool.add(conn);
}
/**
* 不需要增强的方法
* @param iface
* @return
* @throws SQLException
*/
@Override
public <T> T unwrap(Class<T> iface) throws SQLException {
// TODO Auto-generated method stub
return null;
}
@Override
public PreparedStatement prepareStatement(String sql) throws SQLException {
// TODO Auto-generated method stub
return conn.prepareStatement(sql);
}
}