首页 > 其他 > 详细

装饰器模式

时间:2016-03-18 18:14:21      阅读:223      评论:0      收藏:0      [点我收藏+]

理解:

    装饰器模式是便于扩展,在一个最基本的对象中,不断追加新工功能(装饰),满足需求,对象都是独立的;

如果利用继承,继承是单继承不便于以后扩展其他功能;


举例:

    人吃饭,有钱人吃饭,神仙吃饭;

    检验字段非空;转义html;***合法性;



     public interface Decorator {
        public String eat();
    }


//基类

    public class Person implements Decorator{

    @Override
    public String eat() {
        return "吃饭";
    }
}


//装饰类

public abstract class FilterPerson implements Decorator{
    protected Decorator p;
    public FilterPerson(Decorator p) {
        this.p=p;
    }
    @Override
    public String eat() {
        return p.eat();
    }
}



//富人吃饭

public class SuperPerson extends FilterPerson{

    public SuperPerson(Decorator p) {
        super(p);
    }
    
    public String eat(){
        return  "先来杯酒;"+p.eat()+";再来根烟";
    }

}



public class GodPerson extends FilterPerson{

    public GodPerson(Decorator p) {
        super(p);
    }

    public String eat(){
        return "喝个人参汤;"+p.eat()+";唱个歌";
    }

}


//测试

public class Test {
    public static void main(String[] args) {
        Decorator p=new Person();
        System.out.println(p.eat());
        Decorator superp=new GodPerson(new SuperPerson(p));
        System.out.println(superp.eat());
    }
}




装饰器模式

原文:http://xuliangjun.blog.51cto.com/7398089/1752486

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!