装饰者模式学习
来源:互联网 发布:centos 教程 编辑:程序博客网 时间:2024/06/06 00:19
装饰者模式学习,记录下来以后看,图和代码都和书上的一模一样。
代码片段1:(饮料抽象类)
public abstract class Beverage { String description = "Unknown Beverage"; public String getDescription(){ return description; } public abstract double cost();}
代码片段2:(抽象装饰者)
public abstract class CondimentDecorator extends Beverage { public abstract String getDescription();}
代码片段3:(具体的饮料)
public class Espresso extends Beverage { public Espresso(){ description = "Espresso"; } @Override public double cost() { return 1.99; }}
代码片段4:(具体的饮料)
public class HouseBlend extends Beverage { public HouseBlend(){ description = "HouseBlend"; } @Override public double cost() { return 0.89; }}
代码片段5:(具体的装饰者)
public class Mocha extends CondimentDecorator { Beverage beverage; public Mocha(Beverage beverage){ this.beverage = beverage; } @Override public String getDescription() { return beverage.getDescription() + ", Mocha"; } @Override public double cost() { return 0.2 +beverage.cost(); }}
代码片段6:(具体的装饰者)
public class Soy extends CondimentDecorator { Beverage beverage; public Soy(Beverage beverage){ this.beverage = beverage; } @Override public String getDescription() { return beverage.getDescription() + " ,Soy"; } @Override public double cost() { return 0.5 + beverage.cost(); }}
测试代码:
Beverage beverage3 = new HouseBlend();beverage3 = new Mocha(beverage3);beverage3 = new Soy(beverage3); System.out.println(beverage3.getDescription() + " $ " +beverage3.cost());
运行结果:
HouseBlend,Mocha, Soy $ 1.59
0 0
- 装饰者模式学习
- 装饰者模式学习
- 装饰者模式学习
- 设计模式学习---装饰者
- 装饰者模式学习笔记
- 【学习笔记】装饰者模式
- 设计模式学习--装饰者模式
- 设计模式学习之装饰者模式
- 学习:设计模式之装饰者模式
- 设计模式学习-Decorator装饰者模式
- 设计模式实例学习-装饰者模式
- hjr学习-设计模式:装饰者模式
- 设计模式-装饰者模式学习笔记
- 设计模式学习之装饰者模式
- 编程学习之装饰者模式
- HeadFirst学习之装饰者模式
- 2016.12.15学习日记 装饰者模式
- JAVA学习之装饰者模式
- 利用java script获取两个日期区间内数组的方法
- 乱码问题备忘
- 内网渗透中转发工具总结
- 十大OpenGL教程
- iOS 图片模糊效果(高斯模糊)
- 装饰者模式学习
- Swift网络请求库Alamofire
- python读conf配置文件--ConfigParser
- mysql插入时unique字段重复插入失败
- JQuery库:(一)简介
- 指针参数传递
- android学习,当viewFilpper需要滑出并且GONE
- [打造自己的代码库]ExcelUtil:(POI)解析Excel Sheet 与 String[][][]互转
- nyoj 1023 还是回文(dp)