多态性问题与抽象类的接口

时间:2013-10-25 02:33:37

标签: c++ plugins polymorphism

我正在编写一个用于访问文件存储库的插件接口。这个想法是访问协议(或本地文件操作)将由特定插件实现,而接口为应用程序提供了一种手段,可以在不知道存储库类型的情况下执行文件操作(例如WebDAV,FTP,本地文件系统等) )。我目前的代码库的简略摘录版本如下所示。

class Path {
  virtual void ascend() = 0;
  virtual void descend(string &s) = 0;
};
class RepositoryInterface {
  virtual void move(Path &src, Path &dst) = 0;
  virtual Path* root() = 0;
};

class LocalPath : Path {
  void ascend() { ... }
  void descend(string &s) { ... }
};
class LocalRepository : RepositoryInterface {
  void move(Path& src, Path& dst) { ... }
  Path* root() { ...; return new LocalPath(...); }
};

目的是我可以提取根路径的表示,移动目录树,并将该表示发送回move()例程。问题是我没有看到任何方法来确保发回的路径来自我的实现,而不是其他人的。

我希望提出的问题很明确,我想知道是否有一个可接受的模式来解决这个问题。

0 个答案:

没有答案