JavaSE(16)(装饰者设计模式)
来源:互联网 发布:产品宣传手册制作软件 编辑:程序博客网 时间:2024/05/01 11:44
装饰者设计模式:package zz.itheima.decorator;public class DecoratorPattern { public static void main(String[] args) { //装饰者设计模式 /* 1.FileWriter本身有8k的缓冲区,那也可以提供一个方法能够修改缓冲区的大小 2.我想加强一个类的功能?怎么办最好? a.修改类的源代码 弊端:兼容性不好 b.继承 弊端:比较臃肿 c.完全新建一个类,替换原来的类 弊端:相似或相同的方法又要重新实现 d.装饰者设计模式 class BufferWriter{ //缓冲区很大 //有方法可以灵活设置缓冲区的大小 int size; //有个属性FileWriter fw; public BufferWriter(FileWriter fw,int size) { this.fw=fw; this.size=size; } public int read() { fw.read(); } }*/ }}Person类:package zz.itheima.decorator;public class Person { public void eat(){ System.out.println("直接吃!"); }}NewPerson类:package zz.itheima.decorator;public class NewPerson { private Person p; public NewPerson(Person p){ this.p = p; } public void eat(){ System.out.println("先洗手!"); p.eat(); }}NewNewPerson类:package zz.itheima.decorator;public class NewNewPerson { private NewPerson np; public NewNewPerson(NewPerson np){ this.np = np; } public void eat(){ np.eat(); System.out.println("洗碗!"); }}TestPerson类:package zz.itheima.decorator;public class TestPerson { //装饰者设计模式 public static void main(String[] args) { NewNewPerson nnp = new NewNewPerson(new NewPerson(new Person())); nnp.eat(); }}执行结果:先洗手!直接吃!洗碗!
0 0
- JavaSE(16)(装饰者设计模式)
- 设计模式:装饰者模式(Python)
- 设计模式(装饰者模式)
- 设计模式(装饰者模式)
- 【设计模式】-装饰者模式(Wrapper)
- 设计模式:9)装饰者模式
- 设计模式(二)装饰者模式
- 设计模式-装饰者模式(6)
- 设计模式之(装饰者模式)
- 设计模式(Java)-装饰者模式
- Java设计模式(装饰者模式)
- 设计模式-装饰者模式(Decorator)
- 设计模式(三)装饰者模式
- (设计模式)装饰者模式-java
- 设计模式(三):装饰者模式
- JAVA 装饰类(装饰设计模式)
- 设计模式之Decorator(装饰者)
- C++设计模式(一)装饰者
- iOS 从开发到发布过程中需要注意的事项(持续补充)
- Establishment of a TCP connection, state diagram
- iOS开发之UIWebView
- 执行mvn 报错 source-1.5 中不支持 diamond运算符
- SQL Server 获取刚插入数据的ID号
- JavaSE(16)(装饰者设计模式)
- Swift简单的本地存储方式NSUserDefaults
- 磁盘管理-基本磁盘、动态磁盘、GPT磁盘、MBR磁盘/CHS(cylinder柱面-head磁头-sector扇区)
- Android studio 导入 PullToRefresh
- 从零开始配置Jenkins(二)——常见问题及排错思路
- 【LeetCode】70Climbing Stairs
- 数据结构C++语言描述专题系列 (二) 栈
- Android 开发技巧 开发常见问题归纳 需要注意的坑和解决方案
- android之往手机内存合sdcard卡上存储数据