1

我的班级通过其公共方法Controller操纵一些。Object这就是问题所在: canObject请求的某些更改Controller在执行任何进一步的操作之前需要进行一些澄清。怎样才能干净利落地解决?这是一个简单的实现,可以使问题更容易理解:

class Object {
 public:
  std::optional<Clarification_request> process_request(Parameter);
  // USE THIS ONLY IF process_request() RETURNED A CLARIFICATION REQUEST:
  void clarify_previous(Clarification);
};

是否有更清洁的设计决策?这是我的想法(如果您愿意,在提出自己的想法之前可能不应该阅读):

class Object {
 public:
  std::variant<Usual_request, Clarification_request> get_awaited_request() const;
  void process_request(std::variant<Parameter, Clarification>);
};

但是,它似乎仍然不是一个很好的解决方案。还有更好的吗?

4

0 回答 0