我正在寻找完成以下任务的最佳方法:
背景
我有一个带有request()
虚拟方法的基础类,不同的子类提供了执行请求的替代实现。我的想法是让客户端实例化这些子类之一并将这些对象之一传递给子系统,该子系统将request()
在需要时调用。目标是让客户端决定如何通过实例化所需的子类来处理请求。
问题
但是,如果选择了某个子类实现,则它需要来自子系统的一条信息,该信息最自然地作为参数传递给请求(即request(special_info);
)。但其他子类不需要这个。有没有一种干净的方法来隐藏这种差异或可以在这里使用的适当设计模式?
谢谢