GOF的23中设计模式就像是习武之人的内功心法,只把心法背的熟练,而不理解其的妙处,想必武功只能有轻微的提高,个人觉得学习设计模式,主要是学习的是每种设计模式是如何使用java面向对象的,如何来完成代码的简化、易扩展、解耦的;要学习的是在什么场景下用什么样的招数来破解难题。
其中,组合模式,想必工作中直接写的不多,但是有很多的场景都是已经应用到的,比如,XML文件解析、操作系统的资源管理器、杀毒软件的杀毒、JUnit单元测试框架等。以Junit为例,包含了TestCase(叶子节点),TestUnite(容器),Test接口(抽象)三部分组成,也事组合模式的三种角色,下面以模拟杀毒文件的方式,来讲述代码实现
第一 ,抽象:杀毒文件的公共功能
package top.xq.pattern.composite;
/**
* .
* 病毒查杀的共同有的功能
* 此接口是查看功能的统一File查杀组件的定义
*
*/
public interface KillFileI {
/**
* 杀毒
*/
void killVirus();
}
第二,系统中的各种类型的文件杀毒方式:
package top.xq.pattern.composite;
/**
* 类名称 KillFileImage
* 说明 组合模式中的叶子节点
* 图片杀毒
* 作者 ts0002
* 日期 2019/10/23 15:13
*/
public class KillFile