gpt4 book ai didi

C++ 不同的子类需要不同的参数

转载 作者:太空宇宙 更新时间:2023-11-04 14:11:21 25 4
gpt4 key购买 nike

我正在寻找实现以下目标的最佳方法:

背景

我有一个带有 request() 虚拟方法的基类,不同的子类提供了执行请求的替代实现。我的想法是让客户端实例化这些子类之一,并将这些对象之一传递给子系统,该子系统将在需要时调用 request()。目标是让客户决定如何通过实例化所需的子类来处理请求。

问题

但是,如果选择了某个子类实现,它需要来自子系统的一条信息,这些信息最自然地作为参数传递给请求(即 request(special_info);)。但是其他子类不需要这个。是否有一种干净的方法来隐藏这种差异或可以在此处使用的适当设计模式?

谢谢

最佳答案

使基础 request() 方法将信息作为参数,并忽略不需要它的子类实现中的参数。

或者将 SubSystem 实例本身传递给处理程序,让处理程序从 SubSystem 获取它需要的信息(如果它不需要 SubSystem 的任何信息,则忽略它)。这将使设计更具可扩展性:您不需要在每次引入需要额外信息的新子类时传递额外的参数并重构所有方法。

关于C++ 不同的子类需要不同的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14046270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com