(八章):组合模式与享元模式解析
发布时间
阅读量:
阅读量
组合模式(Composite)与享元模式(Flyweight)同属结构型设计模式,是七种结构型模式中最后被介绍的两种。(其余的包括装饰器、代理、外观以及桥接模式)
> 什么是组合模式?
正如之前所提及的,组合模式作为结构型设计模式的一种,其核心目的在于应对特定的结构性问题。
设想这样一个情境:当用户在浏览硬盘中的某个文件时,无论是打开一个文件还是打开一个文件夹,操作方式都是通过双击实现,从用户角度来看并无明显差异。然而,在实际系统中,文件夹与具体文件之间仍存在本质区别,如图所示:

显而易见,文件夹具备作为容器的功能,能够容纳多个文件;而文件则仅能作为树结构中的一个终端节点。这种差异性在代码实现过程中带来了挑战,因为我们在设计时期望这两个类在外部表现上具有一致性(例如双击操作均可触发打开动作),那么该如何实现这一目标呢?
组合模式:其核心在于通过递归的方式将容器对象与叶子对象进行整合,从而使得用户在实际使用过程中无需辨别两者的区别,即可采用统一的方式进行操作。
接下来我们通过以下UML图示,来具体展示组合模式在文件系统中的实际应用情况:

还没有任何评论哟~
