首页 > 其他 > 详细

装潢模式

时间:2018-01-03 23:23:48      阅读:258      评论:0      收藏:0      [点我收藏+]

装潢模式

我的理解是,装潢模式的作用就是:扩展类的功能但不修改类,也就是依赖倒置原则

用普通白饭和蛋炒饭举个例子

Food是他们都实现了的接口

public interface Food {
    double getPrice();
}

Rice(白饭)实现了Food接口

public class Rice implements Food {

    @Override
    public double getPrice() {
        return 2.0;
    }

}

蛋炒饭(EggRice)也实现了Food接口,并且持有一个实现了Food接口的对象,也就是普通白饭(EggRice装饰了Rice)

public class EggRice implements Food {

    private Food food;
    private double eggPrice = 1.0;

    public EggRice(Food food) {
        this.food = food;
    }

    @Override
    public double getPrice() {
        return food.getPrice() + eggPrice;
    }

}

测试类

public class Main {
    public static void main(String[] args) {

        Rice rice = new Rice();
        System.out.println("一碗饭要" + rice.getPrice() + "钱");
        EggRice eggRice = new EggRice(rice);
        System.out.println("一碗蛋炒饭要" + eggRice.getPrice() + "钱");
    }
}

输出结果是:

一碗饭要2.0钱
一碗蛋炒饭要3.0钱

装潢模式

原文:https://www.cnblogs.com/shadow-demo/p/8186244.html

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