首页 > 其他 > 详细

装饰模式

时间:2017-06-15 09:31:37      阅读:312      评论:0      收藏:0      [点我收藏+]

People.java类

package decorate;


public class People{
    private String name;
    
    public People() {
    }
    public People(String name) {
        this.name = name;
    }

    public void operation() {
        System.out.println("开始装饰:"+name);
    }
}

Finery.java类

package decorate;

public class Finery extends People{
    private People people;
    
    public void decorate(People people) {
        this.people = people;
    }

    public void operation(){
        people.operation();
    }
}

TshirtFinery.java类

package decorate;

public class TshirtFinery extends Finery {

    @Override
    public void operation() {
        super.operation();
        this.show();

    }
    public void show(){
        System.out.println("大T衫");
    }

}

BigTrouserFinery.java类

package decorate;

public class BigTrouserFinery extends Finery {
    @Override
    public void operation() {
        super.operation();
        this.show();
        
    }
    public void show(){
        System.out.println("大裤衩");
    }
}

ShoeFinery.java类

package decorate;

public class ShoeFinery extends Finery {
    @Override
    public void operation() {
        super.operation();
        this.show();
        
    }
    public void show(){
        System.out.println("长袜子");
    }
}

Business.java类

package decorate;

public class Business {
    public static void main(String[] args) {
        People p = new People("桂清");
        TshirtFinery t = new TshirtFinery();
        BigTrouserFinery b = new BigTrouserFinery();
        ShoeFinery s = new ShoeFinery();
        t.decorate(p);
        b.decorate(t);
        s.decorate(b);
        s.operation();

    }
}

 

装饰模式

原文:http://www.cnblogs.com/ccgjava/p/7015549.html

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