我正在设计一个分布式文件系统,其中一个核心类是FileSystem类,它看起来像:
class FileSystem {
public:
exists(Path*);
insert_file(File*);
insert_block(Block*);
remove(Path*);
list();
update_file(File*);
update_block(Block*);
get_file(Path*);
get_block(Block*);
move(Path*, Path*);
copy(Path*, Path*);
...
... // More and more methods
};
我成功地重构了这个项目,然而,每当我需要添加一个行为(装饰器或子类型)时,我都无法重构这个类。我最终使我的设计变得更加复杂。另一个问题是此类的依赖项数量(路径,块,文件以及其他未包含在代码段中的文件)。
主要原因是这个FS类有太多的责任,但我仍然找不到将这个File系统类拆分成不同类的方法。我想知道这种情况是否有任何模式,如果没有,你会如何处理这个巨大的阶级?