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

- A.Flyweight
- B.Proxy
- C.Command
- D.State
正确答案及解析
正确答案
A
解析
在本题中,解题的关键点是:“为节省内存空间,要求不能将具有相同属性(例如类型、扩展名、图标相同)的相同文件看作不同的对象。”
这句话要表达的意思是:有相同属性的相同文件,即使存在不同的目录下,应作为一个对象。即创建了一个对象要在多处共享使用,所以用享元。




