今天学习了毕老师的装饰模式
就拿老师说的例子为例把:吃饭的例子
class Person{
public void eat(){
System.out.println("吃饭");
}
}
public class PersonEnhance{
private Person p;
public PersonEnhance(Person p){
System.out.println("开胃酒");
p.eat();
System.out.println("甜点");
}
}
通过老师的讲解,我明白了装饰模式就是在原有类的基础上把某个方法增强功能
但是这让我想到了java 的动态代理,他也是在某个方法的基础上增加额外的功能,那么她们有什么区别呢?
装饰类和被装饰的类是应该继承或实现相同的接口,而java的动态代理不是,除了这个区别还有别的吗? |
|