java IO流

流的分类:
按内容分:字节流(InputStream|OutputStream)和字符流(Reader|Writer)
按功能分:输入流和输出流
按形式分:实体流(节点流)和装饰流(处理流)

实体类(节点流):直接操作数据源的流
装饰流(过滤流):装饰流不可以直接操作数据源,必须构建的实体流或其他装饰流的基础上

Decorator模式:
又名包装(Wrapper)模式。
  装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。
  装饰模式通过创建一个包装对象,也就是装饰,来包裹真实的对象。
  装饰模式以对客户端透明的方式动态地给一个对象附加上更多的责任。
  装饰模式可以在不创造更多子类的情况下,将对象的功能加以扩展。
  

装饰模式的角色:
抽象角色:InputStream|OutputStream|Reader|Writer
具体角色:FileInputStream (实体流)(被装饰对象)
装饰角色:FilterInputStream


可以发现:静态代理模式和装饰模式上在语法形式上几乎完全一样,那么它们的区别在哪里呢
相同点:都是为被代理(被装饰)的类扩充新的业务。
不同点:代理模式具有控制被代理类的访问性质,而装饰模式仅仅是单纯的扩充被装饰的类,为所装饰的对象增强功能(方法)。所以区别仅仅在是否对被代理/被装饰的类进行了控制而已。


其实,它们的着重点一个在于“增加”职责,另一个在于“控制”访问。这是它们最本质的区别。
由此可以看到:学习设计模式重点在于“语义”上把握,而不是追求它的"形式"。

序列化:实现Serializable接口
ObjectInputStream
ObjectOutputStream


克隆方式生成对象:实现Cloneable接口

反序列化和克隆不会调用构造函数生成对象!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值