10.9-全栈Java笔记:装饰器模式构建IO流体系
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10.9-全栈Java笔记:装饰器模式构建IO流体系相关的知识,希望对你有一定的参考价值。
装饰器模式
装饰器模式是GOF23种设计模式中较为常用的一种模式。它可以实现对原有类的包装和装饰,使新的类具有更强的功能。
我这里有智能手机Iphone, 我们可以通过加装投影组件,实现原有手机功能的扩展。这就是一种“装饰器模式”。 我们在未来普通人加装“外骨骼”装饰,让普通人具有力扛千斤的能力,也是一种“装饰器模式”。
【图】 手机经过投影套件“装饰后”,成为功能更强的“投影手机”
【示例1】装饰器模式代码
package com.bjsxt.io;
/** * 测试装饰器模式 * @author 尚学 * */ public class TestDecoration{ public static void main(String[] args) { Iphone phone = new Iphone("iphone30"); phone.show(); System.out.println("===============装饰后"); TouyingPhone typhone = new TouyingPhone(phone); typhone.show(); } }
class Iphone { private String name;
public Iphone(String name){ this.name = name; }
public void show(){ System.out.println("我是"+name+",可以在屏幕上显示"); }
}
class TouyingPhone { public Iphone phone; public TouyingPhone(Iphone p){ this.phone = p; }
//功能更强的方法 public void show(){ phone.show(); System.out.println("还可以投影,在墙壁上显示"); }
} |
IO流体系中使用装饰器模式
IO流体系中大量使用了装饰器模式,让流具有更强的功能、更强的灵活性。比如:FileInputStream fis = new FileInputStream(src);
BufferedInputStream bis = new BufferedInputStream(fis);
显然BufferedInputStream装饰了原有的InputStream,让普通的InputStream也具备了缓存功能,提高了效率。 大家举一反三,可以翻看本章代码,看看还有哪些地方使用了装饰器模式。
「全栈Java笔记」是一部能帮大家从零到一成长为全栈Java工程师系列笔记。笔者江湖人称 Mr. G,10年Java研发经验,曾在神州数码、航天院某所研发中心从事软件设计及研发工作,从小白逐渐做到工程师、高级工程师、架构师。精通Java平台软件开发,精通JAVAEE,熟悉各种流行开发框架。
笔记包含从浅入深的六大部分:
A-Java入门阶段
B-数据库从入门到精通
C-手刃移动前端和Web前端
D-J2EE从了解到实战
E-Java高级框架精解
F-Linux和Hadoop
本文出自 “12931675” 博客,请务必保留此出处http://12941675.blog.51cto.com/12931675/1944629
以上是关于10.9-全栈Java笔记:装饰器模式构建IO流体系的主要内容,如果未能解决你的问题,请参考以下文章