设计模式之装饰者模式

本文介绍了装饰者模式的概念,通过路边摊美食的实例来说明其工作原理。装饰者模式允许在不修改对象的基础上,动态地给对象增加新的行为和职责。文章详细展示了路边摊的类图和实现,包括Food、EggCake、ChineseHamburger等类,以及如何通过OriginalMaterial、Egg、Tenderloin等装饰物来改变主食品的价格。
摘要由CSDN通过智能技术生成

目录

 

装饰者模式介绍

路边摊事例

路边摊类图

路边摊实现

Food

EggCake

ChineseHamburger

OriginalMaterial

Egg

Tenderloin

HamSausage

ChineseHamburger

Test


装饰者模式介绍

装饰者模式动态的将责任附加到对象身上。想要拓展功能,装饰者提供有别于继承的另一种选择。

 

路边摊事例

在城市中,总有那么一群人,为我们提供自然的美味肉夹馍和鸡蛋灌饼,在这两种食物上,我们可以额外的加鸡蛋、里脊、火腿、鸡胸肉等等,我们假定他们的价格如下:

食材

价格

备注

肉夹馍

5.0元

主产品

鸡蛋灌饼

4.0元

主产品

鸡蛋

1.0元

附加品

里脊

2.0元

附加品

火腿肠

1.5元

附加品

鸡胸肉

1.5元

附加品

路边摊只提供两种主商品(肉夹馍和鸡蛋灌饼),在这之上,我们可以添加其他的辅料,比如鸡蛋灌饼 + 里脊,那这个时候的价格是6.0元。

 

路边摊类图

 

 

路边摊实现

Food

package com.lulei.study.design.patterns.decorator;

/**
 * Created by lulei on 2019/4/19.
 */
public abstract class Food {
    abstract String getDescription();

    abstract double cost();

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值