JAVA 装饰设计模式<转载>
来源:互联网 发布:apache 下载windows10 编辑:程序博客网 时间:2024/06/07 23:51
转载自:http://blog.sina.com.cn/s/blog_3d43347c0100bp6r.html
在IO中使用到装饰设计模式,其中Buffer就是运用之一
=============== 1、 Work.javapackage decorator;public interface Work { public void paint();}=============== 1 end =============== 2、 Son.javapackage decorator;public class Son implements Work { public void paint() { System.out.println("儿子用铅笔画好了一幅画。"); }}=============== 2 end =============== 3、 Mother.javapackage decorator;public class Mother implements Work { //被装饰者 private Work work; public Mother(Work work) { this.work = work; } private Mother() {} public void paint() { //妈妈装饰者做的职责 System.out.println("妈妈正在做给画上颜色前的准备工作。"); //被装饰者做的职责 work.paint(); //妈妈装饰者做的职责 System.out.println("妈妈给画上好了颜色。"); }}=============== 3 end =============== 4、 Father.javapackage decorator;public class Father implements Work { //被装饰者 private Work work; public Father(Work work) { this.work = work; } private Father() {} public void paint() { //爸爸装饰者做的职责 System.out.println("爸爸正在做上画框前的准备工作。"); //被装饰者做的职责 work.paint(); //爸爸装饰者做的职责 System.out.println("爸爸给画装好了一个画框。"); }}=============== 4 end =============== 5、 DecoratorTest.javapackage decorator;public class DecoratorTest { public static void main(String[] args) { //只画铅笔画 Work work = new Son(); work.paint(); System.out.println("\n"); //除了画铅笔画,还要给画上颜色 work = new Mother(work); work.paint(); System.out.println("\n"); //除了画铅笔画,给画上颜色,还要给画上画框 work = new Father(work); work.paint(); }}=============== 5 end
输出:
儿子用铅笔画好了一幅画。
妈妈正在做给画上颜色前的准备工作。
儿子用铅笔画好了一幅画。
妈妈给画上好了颜色。
爸爸正在做上画框前的准备工作。
妈妈正在做给画上颜色前的准备工作。
儿子用铅笔画好了一幅画。
妈妈给画上好了颜色。
爸爸给画装好了一个画框。
- JAVA 装饰设计模式<转载>
- Java装饰设计模式
- Java 装饰设计模式
- Java 装饰设计模式
- java 装饰设计模式
- Java 装饰设计模式
- java 装饰设计模式
- Java装饰设计模式
- Java 装饰设计模式
- Java装饰设计模式
- Java 设计模式 --装饰模式
- Java 设计模式-----装饰模式
- java设计模式-装饰模式
- java设计模式---装饰模式
- java设计模式-装饰模式
- 【Java设计模式】装饰模式
- java设计模式-装饰模式
- java设计模式--装饰模式
- leecode--Palindrome Number
- 窗口类的 CS_OWNDC 类型
- Quantmod2
- 深圳数据恢复解密华强北数据解密恢复硬盘光盘U盘内存文件邮件照片恢复解密金蝶管家婆速达用友维修安装
- CImage使用问题
- JAVA 装饰设计模式<转载>
- iOS自定义UINavigation
- POP3、SMTP和IMAP之间的区别和联系
- 两个App之间传值并跳转
- [bfs] fzu oj 2196 Escape
- Java 遍历Map时 删除元素
- 定时重启程序
- Java中线程的同步
- 查看 Linux 发行名称和版本(HowTo: Find Out My Linux Distribution Name and Version)