全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

Java IO设计上使用了什么设计模式?

发布时间:2022-09-14 15:52:05
发布人:wjy

  装饰者模式:所谓装饰,就是把这个装饰者套在被装饰者之上,从而动态扩展被装饰者的功能。

  装饰着举例

  设计不同种类的饮料,饮料可以添加配料,比如可以添加牛奶,并且支持动态添加新配料。每增加一种配料,该饮料的价格就会增加,要求计算一种饮料的价格。

  下图表示在 DarkRoast 饮料上新增新添加 Mocha 配料,之后又添加了 Whip 配料。DarkRoast 被 Mocha 包裹,Mocha 又被 Whip 包裹。它们都继承自相同父类,都有 cost() 方法,外层类的 cost() 方法调用了内层类的 cost() 方法。

Java IO设计上使用了什么设计模式1

 

  以 InputStream 为例

  InputStream 是抽象组件;FileInputStream 是 InputStream 的子类,属于具体组件,提供了字节流的输入操作;FilterInputStream 属于抽象装饰者,装饰者用于装饰组件,为组件提供额外的功能。例如 BufferedInputStream 为 FileInputStream 提供缓存的功能。

Java IO设计上使用了什么设计模式2

 

  实例化一个具有缓存功能的字节流对象时,只需要在 FileInputStream 对象上再套一层 BufferedInputStream 对象即可。

Java IO设计上使用了什么设计模式3

 

  DataInputStream 装饰者提供了对更多数据类型进行输入的操作,比如 int、double 等基本类型。

相关文章

做视频创作者怎么赚钱?个人怎么靠流量赚钱?

2023-09-19

怎样投抖加不花钱?别人能看出来吗?

2023-09-19

抖店怎么拦截快递?线下结算是什么?

2023-09-19

抖店平台商户被退店还能退货吗?如何提高评分?

2023-09-19

抖店入驻收费多少?开抖店费用是多少?

2023-09-19

想做直播带货的货源哪里来?怎么找货源?

2023-09-19
在线咨询 免费试学 教程领取