在旧的上创建新的c ++接口以添加新功能

时间:2017-03-15 21:04:39

标签: c++

我试图了解是否有最佳实践,而不是下面的实践。 所以在我们的项目中,我们创建了一个接口IForm,如下所示:

class IForm {
 protected:
  IForm() {}

 public:

  virtual ~IForm() {}
  virtual const std::string& GetId() const = 0;
  virtual const std::string& GetTitle() const = 0;
  virtual void SetTitle(const std::string& title) = 0;
  virtual void SetFormError(const std::string& error_text) = 0;
  virtual void ClearFormError() = 0;
};

然后需求变得更多,因此我们创建了新的接口IForm2

class IForm2: public IForm {
 protected:
  IForm2() = default;

 public:
  virtual ~IForm2() = default;
  virtual void RemoveWidget(const std::string &id) = 0;
  virtual void Clear() = 0;
};

我的问题是:

有解决方法吗?我可以使用一些设计模式来实现更新的需求而不是添加更新的接口,而不是添加新接口吗?

我知道上面的方法运行正常。我只是在寻找实现功能的替代方案。

1 个答案:

答案 0 :(得分:0)

我从来没有真正需要它,但你可能想要查找装饰设计模式。

这是指向装饰者的SO答案的链接。

Decorator pattern in C++