装饰设计模式

装饰设计模式:
当想要对已有的对象进行功能增强时
可以定义一个类,将已有对象传入,基于已有对象的功能,并提供加强功能
那么自定义的该类就称为装饰类。

装饰类通常会通过构造方法接收被装饰的对象
并基于被装饰的对象的功能提供更强的功能

class Test{
    public static void main(String[] args){
        Person p=new Person();
        //p.chifan();//老的吃饭方法
        SuperPerson sp=new SuperPerson(p);
        sp.superchifan();//新的吃饭方法
    }
}
class Person{
    public void chifan(){
        System.out.println("吃饭");
    }
}
class SuperPerson{
    //成员的引用,让p这个对象可以作用与整个类
    private Person p;
    //既然是功能的增强,那么首先要增强要增强的对象
    //所以在构造函数上建立需要增强的对象
    SuperPerson(Person p){
        this.p=p;
    }
    public void superchifan(){
        System.out.println("开胃酒");//增强功能
        p.chifan();
        System.out.println("甜点");//增强功能
    }
}

 

posted @ 2015-12-27 17:32  唱一些温暖  阅读(154)  评论(0编辑  收藏  举报