采用以下设计思路实现下图所示目录浏览器:目录中每个目录项被认定为一个类,其属性包括名称、类型(目录或文件)、大小、扩展名、国标等。为节省内存空间,要求不能将具有相同属性(例如类型、扩展名、图标相同)相同文件看作不同对象。能够满足这一要求设计模式是( )。

根据目和用途不同,设计模式可分为创建型(Creadonal)模弍、结构型(Structural)模式和行为型(Behavioral)模式三种。创建型模式主要用于创建对象,结构型模式主要用于处理类或对象组合,行为型模式主要用于描述类或对象交互以及职责分配。根据题干描述,适用于该要求设计模式应属于结构型模式。Flyweight(享元)和Proxy(代理)属于结构型模式。Flyweight模式通过运用共享技术,有效地支持大量细粒度对象。系统只使用少量对象,而这些对象都很相似,状态变化很小,对象使用次数增多。Proxy模式可为某个对象提供一个代理,并由代理对象控制对原对象引用。代理模式能够协调调用者和被调用者,能够在一定程度上降低系统耦合度。因此本题适合于采用Flyweight模式。









