欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

021.7 装饰设计模式

程序员文章站 2022-05-20 18:01:45
解决问题 :给对象提供额外的功能(职责),比继承更灵活 ......


解决问题 :给对象提供额外的功能(职责),比继承更灵活

public class PersonDemo
{

    public static void main(String[] args)
    {
        Person p = new Person();
        NewPerson np = new NewPerson(p);
        np.eat();
    }
}

class Person{
    void eat(){
        System.out.println("eat");
    }
}

//装饰器
class NewPerson{
    private Person p;
    public NewPerson(Person p){
        this.p = p;
    }
    void eat(){
        System.out.println("开胃");
        p.eat();
        System.out.println("甜点");
    }
}

//继承
class SubPerson extends Person{
    void eat(){
        System.out.println("开胃");
        super.eat();
        System.out.println("甜点");
    }
}