Java设计模式-装饰模式
来源:互联网 发布:淘宝能卖泰国药品吗 编辑:程序博客网 时间:2024/05/20 10:54
1.装饰模式的四个构件
1.抽象被装饰者,通常是抽象类
2.具体被装饰者
3.抽象装饰者,通常是抽象类,并继承自抽象被装饰者
4.具体抽象者
2.例子
2.1有一个饮品系统,其有具体饮品,以及配料。那么明显的配料就是饮品的装饰者。
2.2类图
2.3实现
Beverage.java (抽象被装饰者)
public abstract class Beverage { public String description = "unkonw beverage"; public Beverage() { } public Beverage(String description) { this.description = description; } public String getDescription() { return description; } public abstract double Cost();}
housblend.java (具体饮品,也就是具体的被装饰者)
public class HousBlend extends Beverage { public HousBlend() { super("housblend"); } public double Cost() { return 0.89; }}
codimentdecorator.java(抽象装饰者)
public abstract class CondimentDecorator extends Beverage { protected Beverage beverage; public CondimentDecorator(Beverage beverage) { this.beverage = beverage; } public abstract String getDescription(); public double Cost() { return beverage.Cost(); }}
Mocha.java(具体装饰者)
public class Mocha extends CondimentDecorator { public Mocha( Beverage beverage) { super(beverage); } public String getDescription() { return beverage.getDescription() + ", mocha "; } public double Cost() { return beverage.Cost()+0.20; }}
装饰者对被装饰者的装饰。
//声明一个具体的饮品 Beverage be = new HousBlend(); //使用配料装饰、 be = new Mocha(be);
使用装饰者模式,在以后需要添加配料或者修改配料的价钱时,并不需要被装饰者的源码、
Java的IO流也是用了装饰模式
0 0
- Java装饰设计模式
- Java 装饰设计模式
- Java 装饰设计模式
- java 装饰设计模式
- Java 装饰设计模式
- java 装饰设计模式
- Java装饰设计模式
- Java 装饰设计模式
- Java装饰设计模式
- Java 设计模式 --装饰模式
- Java 设计模式-----装饰模式
- java设计模式-装饰模式
- java设计模式---装饰模式
- java设计模式-装饰模式
- 【Java设计模式】装饰模式
- java设计模式-装饰模式
- java设计模式--装饰模式
- java设计模式---装饰模式
- ubuntu安装openslide-matlab
- Java面试
- Centos7使用yum安装MySQL5.6的正确姿势
- storm基本概念
- APP和服务端-架构设计(一)
- Java设计模式-装饰模式
- 强化学习系列<6>Actor Critic
- Hierarchy Viewer(布局树查看器)
- Vue生命周期
- BerkeleyGW编译安装说明
- SPARK TOPK程序
- Unity中鼠标左键按下,拖拽物体移动
- 利用tftpd32在Linux与Windows7之间传输文件
- 打表法的经典问题