什么是装饰者模式
是不改变原来的类, 不使用继承,来对某个类进行扩展的一个功能
实现步骤
1. 创建一个接口
2. 创建接口的实现类(被装饰类)
3. 创建接口的实现类,并且组合被装饰类的应用(装饰类)
4. 在装饰类中对要扩展的方法进行扩展
代码实现
公共的接口
// 接口
public interface BaseDao {
public int add();
}
被装饰类
// 被装饰类, 也就是要被增强的类
public class BaseDaoImpl implements BaseDao{
@Override
public int add() {
return 1 + 1;
}
}
装饰类
public class MyBaseDaoImpl implements BaseDao{
// 使用组合BaseDao
BaseDao baseDao;
MyBaseDaoImpl(BaseDao baseDao) {
this.baseDao = baseDao;
}
// 增强的方法
@Override
public int add() {
System.out.println("增强 baseDao中的方法");
return baseDao.add() + 1;
}
}
测试类
public class TestMy {
public static void main(String[] args) {
MyBaseDaoImpl myBaseDao = new MyBaseDaoImpl(new BaseDaoImpl());
System.out.println(myBaseDao.add());
}
}