(七)装饰模式
来源:互联网 发布:帝国cms 整站 编辑:程序博客网 时间:2024/06/05 03:12
装饰模式
一、什么是装饰模式
装饰(Decorator)模式又叫做包装模式。通过一种对客户端透明的方式来扩展对象的功能,是继承关系的一个替换方案。
二、装饰模式的结构
三、装饰模式的角色和职责
抽象组件角色: 一个抽象接口,是被装饰类和
装饰类的父接口。
具体组件角色:为抽象组件的实现类。
抽象装饰角色:包含一个组件的引用,并定义了
与抽象组件一致的接口。
具体装饰角色:为抽象装饰角色的实现类。负责
具体的装饰四、代码
package org.fbm.decorator;public interface MobilePhone {public void call();public void show();}
package org.fbm.decorator;public class OrdinaryMobilePhone implements MobilePhone {public void call() {System.out.println("普通手机打电话的功能");}public void show() {this.call();}}
package org.fbm.decorator;public abstract class Decorator implements MobilePhone { private MobilePhone mobilePhone; public Decorator(MobilePhone mobilePhone){ this.mobilePhone=mobilePhone; }public MobilePhone getMobilePhone() {return mobilePhone;}public void setMobilePhone(MobilePhone mobilePhone) {this.mobilePhone = mobilePhone;}public abstract void show();}
package org.fbm.decorator;public class ColorMobilePhone extends Decorator {public ColorMobilePhone(MobilePhone mobilePhone) {super(mobilePhone);}public void call() {} public void photograph(){ System.out.println("彩屏手机可以拍照"); }public void show() { this.getMobilePhone().show(); this.photograph();}}
package org.fbm.decorator;public class SmartMobilePhone extends Decorator {public SmartMobilePhone(MobilePhone mobilePhone) {super(mobilePhone);}public void call() {}public void Internet(){System.out.println("智能手机可以上网");}public void show() {this.getMobilePhone().show();this.Internet();}}
package org.fbm.decorator;public class MainClass {public static void main(String[] args) {System.out.println("-----------------普通手机-------------------");MobilePhone omp=new OrdinaryMobilePhone();omp.show();System.out.println("-----------------彩屏手机-------------------");MobilePhone cmp=new ColorMobilePhone(omp);cmp.show();System.out.println("-----------------智能手机-------------------");MobilePhone smp=new SmartMobilePhone(cmp);smp.show();}}
0 0
- (七)装饰模式
- 【设计模式】【七】装饰模式
- 设计模式之七 装饰者模式
- Java设计模式(七)----装饰模式
- 设计模式(七)装饰模式
- 设计模式(七)装饰模式
- JS设计模式七:装饰者模式
- 设计模式(七):装饰模式
- AspectJ实现设计模式(七)—装饰模式
- 设计模式(七)装饰者和观察者模式
- 设计模式学习系列七:装饰模式(Decorator)
- JAVA设计模式(七)——装饰模式
- C#设计模式(七)装饰者模式
- JAVA--装饰模式(Decorator)--设计模式七
- 浅谈Java设计模式(七)装饰模式(Decorator)
- 设计模式(七)——装饰模式
- Java技术常用设计模式(七)--- 装饰模式
- 装饰模式-撤销装饰
- 用sort给字符串排序
- 报数游戏(2)--【英雄会】
- hdu 1113 Word Amalgamation
- pig安装
- C++学习随笔
- (七)装饰模式
- async笔记(二)——process
- Linux で *.lzh
- MFC程序运行机制
- 关于水星mw305R路由器无法设置转发规则,无法ddns的解决办法
- 学习总结 20140130 除夕
- uva 11536 - Smallest Sub-Array(Towpointer)
- Android:Layout_weight的深刻理解
- <MEMORY>Project Euler NO45