装饰着模式
来源:互联网 发布:抢小米神器软件 编辑:程序博客网 时间:2024/05/16 10:55
package com.henu.Decorator;/** * 汉堡基类 * @author rock */public abstract class Humburger { protected String name; public String getName(){ return name; } public abstract double getPrice(); }package com.henu.Decorator;/** * 鸡腿堡类(被装饰者的初始状态,有些自己的简单装饰,相当于上面的Person) * @author rock */public class ChickenBurger extends Humburger{@Overridepublic double getPrice() {// TODO Auto-generated method stubreturn 10.0;}public ChickenBurger(){ name = "鸡腿堡"; } } package com.henu.Decorator;/** * 配料的基类(装饰者,用来对汉堡进行多层装饰,每层装饰增加一些配料,相当于上面Decorator) * @author rock * */public abstract class Condiment extends Humburger{public abstract String getName();}package com.henu.Decorator;/** * 生菜(装饰者的第一层,相当于上面的decorator_zero) * @author rock * */public class Lettuce extends Condiment{Humburger humburger;public Lettuce(Humburger humburger){this.humburger = humburger;}@Overridepublic String getName() {return humburger.getName();}@Overridepublic double getPrice() {return humburger.getPrice()+1.5;}}package com.henu.Decorator;/** * 辣椒(装饰者的第二层) * @author rock * */public class Chilli extends Condiment{Humburger humburger; public Chilli(Humburger humburger){ this.humburger = humburger; }@Overridepublic String getName() {// TODO Auto-generated method stubreturn humburger.getName()+"+辣椒";}@Overridepublic double getPrice() {// TODO Auto-generated method stubreturn humburger.getPrice(); //辣椒是免费的}} public class Test {public static void main(String[] args) { Humburger humburger = new ChickenBurger(); System.out.println(humburger.getName()+" 价钱:"+humburger.getPrice()); Lettuce lettuce = new Lettuce(humburger); System.out.println(lettuce.getName()+" 价钱:"+lettuce.getPrice()); Chilli chilli = new Chilli(humburger); System.out.println(chilli.getName()+" 价钱:"+chilli.getPrice()); Chilli chilli2 = new Chilli(lettuce); System.out.println(chilli2.getName()+" 价钱:"+chilli2.getPrice()); }}鸡腿堡 价钱:10.0鸡腿堡 价钱:11.5鸡腿堡+辣椒 价钱:10.0鸡腿堡+辣椒 价钱:11.5
阅读全文
0 0
- Decorator(装饰着模式)
- 装饰着模式
- 15 装饰着模式
- 装饰着模式
- 装饰着模式
- 装饰着模式
- java装饰着模式
- JDBC中的装饰着模式
- 装饰模式-撤销装饰
- 设计模式之装饰着模式
- 设计模式之装饰着模式
- js设计模式-- 装饰着模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 【Cocos2d-x】开发基础-Node与Node层级架构
- Clojure 导入包
- Linux系统编程——进程间通信:信号中断处理
- JZ2440交叉编译工具的安装
- Linux压缩相关指令
- 装饰着模式
- Docker 菜鸟笔记(二)Docker 安装与常见命令
- 简单工厂模式
- 1217: [HNOI2003]消防局的设立
- linux之信号屏蔽pending
- 1----编程实现100以内两个随机整数的加法运算练习(rand函数)
- 面试中Activity常见的坑你都知道吗?
- 归并排序
- 抽象工厂模式