Java设计模式之装饰模式
来源:互联网 发布:rf软件 编辑:程序博客网 时间:2024/06/05 13:36
装饰模式的定义:在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。
最常见的装饰模式应用在I/O流中
我们使用类图使用来表示装饰模式的关系:
我们使用饼作为例子:我们知道饼是个大的类,下面有好多小类,比如手抓饼,肉夹馍,烧饼、肉松饼,老婆饼……就手抓饼而言,下面还有许多小的类,比如,鸡蛋手抓饼,火腿手抓饼,鸡蛋火腿手抓饼……于是,我们知道其实鸡蛋,火腿……是可以作为一个装饰的类,而手抓饼是作为被装饰的类。
根据上面的类图关系,我们创建一个接口作为被装饰者:Cake,定义价格和描述方法。
public interface Cake {public float price();public String description();}
其次,我们在创建一个装饰类:Decorator,我们需要实现Cake这个接口,同时,装饰者要获取被装饰者,就要通过构造函数传参的方式。
public abstract class Decorator implements Cake{ private Cake cake;public Decorator(Cake cake){this.cake = cake;}public float price() {return cake.price();}public String description() {return cake.description();}}
然后,我们在创建一个GraspCake类去实现Cake接口,作为被装饰的类:
public class GraspCake implements Cake{public float price() {return 3.5f;}public String description() {return "您点了一个原味手抓饼";}}
与此同时,我们在创建一个Egg类去继承Decorator这个类,作为真正实体装饰的类:
public class Egg extends Decorator{public Egg(Cake cake) {super(cake);}public float price() {return super.price()+1.5f;}public String description() {return super.description()+"+鸡蛋";}}
0 0
- Java设计模式之装饰设计模式
- Java之装饰设计模式
- java设计模式之装饰
- Java设计模式之装饰模式
- Java设计模式之装饰模式
- java设计模式之装饰模式
- Java设计模式之二装饰模式
- JAVA设计模式之装饰模式
- java设计模式之装饰者模式
- java设计模式之装饰模式Decorator
- JAVA设计模式之装饰模式
- JAVA 设计模式之装饰模式
- JAVA设计模式之装饰模式
- java 设计模式之装饰模式
- Java设计模式之装饰者模式
- Java设计模式笔记之装饰模式
- Java设计模式之装饰器模式
- java 设计模式 之 装饰模式
- 【Android基础知识】Fragment设计哲学和加载方式
- HTTP断点续传与断点上传之 -- 文件流操作
- tcp socket客户端发送请求连接http服务
- Eclipse下更换主题-Sublime的主题
- 百度地图 聚合功能的实现
- Java设计模式之装饰模式
- 1029. Median (25)
- Android开发应用安装出现两个相同应用的解决办法
- apache开启页面压缩
- source insight研究——正则表达式篇(转)
- oracle中delect和truncate区别
- Windows 10安装.NET 3.5的方法(满足sqiserver2012之需求)
- Mysql体系结构详解——后台线程(待更新)
- 远程登录服务器上的mysql,报错:2003 10061