具有多种方法的C ++类

时间:2016-06-21 07:22:48

标签: c++ design-patterns refactoring anti-patterns

我正在设计一个分布式文件系统,其中一个核心类是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系统类拆分成不同类的方法。我想知道这种情况是否有任何模式,如果没有,你会如何处理这个巨大的阶级?

0 个答案:

没有答案