首页 > 其他 > 详细

装饰器模式

时间:2019-11-28 19:43:41      阅读:64      评论:0      收藏:0      [点我收藏+]

一、定义

动态的给一个对象增加额外的职责。

二、特点

结构型模式,作为现有类的一个包装。在不想增加很多子类的情况下拓展类。允许向一个现有的对象添加新的功能,同时又不改变其结构。

三、示例代码:

public class Person {
    String name;

    public Person() {

    }

    public Person(String name) {
        this.name = name;
    }

    public void show() {
        System.out.println(name);
    }

}
public class Finery extends Person {
    protected Person commponet;

    public void decorate(Person commponet) {
        this.commponet = commponet;
    }
    
    public void show() {
        if (commponet != null) {
            commponet.show();
    
        }
    }    
}
public class Tshirt extends Finery {

    @Override
    public void show() {
        System.out.println("T恤衫");
        super.show();
    }
}
public class Suit extends Finery {
    @Override
    public void show() {
        System.out.println("西装");
        super.show();
    }
}
public class Client {
    public static void main(String[] args) {

        Person person = new Person("小a");

        Finery tshirt = new Tshirt();
        Finery suit = new Suit();

        tshirt.decorate(person);
        suit.decorate(tshirt);
        suit.show();
    }
}

装饰器模式

原文:https://www.cnblogs.com/yfy-/p/11952965.html

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