装饰设计模式和例题

简介:

文件复制程序:

将一个文件复制一份出来,实现方法很简单,使用FileInputStream读取文件内容,然后使用FileOutputStream写入另一个文件,利用read方法的返回值作为while循环的条件,进行一边读一边写。

 

代码示例:

c52fe6c2bab188bc0b7574fcb50ed967.png



统计连续的重复字节:

将连续5个以上重复的字节统计一下,并且将重复的数量和所有重复字节的总数量打印出来。

实现这个程序,主要思路是单个字节的读取,每读取一个字节就记录下来,然后和下一次读取的字节进行对比比否相等,相等代表重复。就再用一个count变量记录重复的次数,如果不相等就代表不重复就需要把这个变量归零重新记录。还需要一个total变量来记录每次重复的次数总和,只需要加个判断条件,只要count大于等于5就令total+=count即可。

 

代码示例:

b1bc1e02bc7642ebfc95c4ed42352475.png


运行结果:

f29e6b014f9182ca7c5f364fbffe4feb.png




装饰设计模式:

装饰设计模式,顾名思义就是给某样东西、某个对象进行装饰。装饰设计模式可以利用继承或实现接口的方式,给一个基础的对象增加新的功能,就像一个毛坯房,可以通过装修之后变成漂亮的房子,有点类似于能够进行功能上的叠加。

下面以蛋糕为主题进行一个装饰设计模式的过程:

代码示例:

先使用一个接口定制好方法:

98e194bc72cf1e08dd8ec143770bc050.png



然后写一个最基础的类,在蛋糕里最基础的类就是普通蛋糕了,在这个类里需要实现接口。

代码示例:

ff7eb5faef3f65ccbb13f81b74f6cf94.png



接着就是其他可以以蛋糕这个类为基础扩展的类,例如草莓蛋糕:

代码示例:

b4a9bcac5cf144345b4fbfc592f74716.png



愿意的话可以写任意个这样的类,但是基本规则都是一样:

  代码示例:

1339edec74551d6ab92005fade0cd7f5.png



体系写完后,可以使用测试类测试效果:

  代码示例:

4ad92b9b49876092b46d2d6ef41adfed.png


运行结果:

8ccfcf2af2235c713659c6c4c827e246.png


再增加(装饰)一个对象:

0ff230f3cc409e22605c05c08e1435d7.png


运行结果:

c18b088031f579cb55485bfb5788e027.png


可以增加任意个对象:

787ad5f32694d4530bdc4db1d5149247.png


运行结果:

dec0b714a4b58f6a23e5337e5f78b090.png


也可以只使用基础类对象:

03546f7efcb029f5ca56416f83538b14.png


运行结果:

88e620728806f56100c6b80019b891dd.png



写信的例题:

  也是同样先定义一个接口或者抽象类:

b5fe8b1be9c5882c17f33265abe39e31.png


然后再定义一个基础实现类:

679bd6669b1b660b373847634f5c0d47.png


有些人喜欢在信件上喷点香水,所以可以写一个香水的扩展类:

1847fc589950f673738f34f3f07b7737.png


如果写的是情书,或许还需要一个吻印,那么就可以写一个吻印的扩展类:

b1315ed96fc72bced06729f4ee006a9e.png


既然有吻印,自然得再加上几个爱心桃,来给对方表达爱慕,那么就再写一个爱心的扩展类:

25c3787aceaf2f40c272686d3f713dd0.png


完成后就可以在测试类里进行测试查看效果:

13ff3566d8991880efb23a58821cf0e2.png



运行结果:

813bde370d917577319fc111785b7066.png




本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1976621,如需转载请自行联系原作者

相关文章
|
7月前
|
设计模式
装饰者设计模式(二)番外篇 装饰者设计模式和静态代理设计模式区别
装饰者设计模式(二)番外篇 装饰者设计模式和静态代理设计模式区别
|
7月前
|
设计模式
装饰者设计模式(一)
装饰者设计模式(一)
|
设计模式 Java
装饰与适配:解析Java设计模式中的装饰器模式和适配器模式
在软件开发领域,设计模式是一组经过实践验证的最佳实践方法,用于解决常见问题。装饰器模式和适配器模式分别是结构型设计模式中的两个重要成员,它们在不同的场景中发挥着关键作用。本文将深入了解装饰器模式和适配器模式的内涵,以及它们在Java中的实际应用。
128 0
|
设计模式
装饰者设计模式
装饰者设计模式
52 0
|
设计模式 Java
装饰设计模式
装饰设计模式
131 0
 装饰设计模式
|
设计模式
入门设计模式之装饰
版权声明:本文为博主原创文章,未经博主允许不得转载。博客源地址为zhixiang.org.cn https://blog.csdn.net/myFirstCN/article/details/80871450 ...
859 0
|
设计模式
装饰设计模式图解
装饰设计模式(IO流中用的多)   装饰设计模式的概述     装饰模式就是使用被装饰类的一个子类的实例,在客户端将这个子类的实例交给装饰类。是继承的替代方案。   优点     使用装饰模式,可以提供比继承更灵活的扩展对象的功能,它可以动态的添加对象的功能,并且可以随意的组合这些功能。
802 0
|
设计模式 容器 数据处理