我正在尝试重写一些代码以解决一些耦合问题并使其更容易在将来修改。
现在,我在基类中有一个静态工厂方法,可以根据情况选择适当的实现。该决定基于专业化程度:
虽然类型 A 和 B 都可以处理这个问题,但 B 是专门为这种情况设计的,是正确的选择。
因此,基类与所有实现紧密耦合,并且在创建新的专用实现时必须重写此方法。
我正在考虑使用责任链模式来打破这种耦合。但是,我看不到确保执行最合格的实现的方法。如果我把它交给实现来做出这个决定,我不能保证它们会按专业化的顺序被查询而不会遇到相同的耦合问题。
有没有处理这种情况的模式或方法? (我最好的猜测会阻碍部署;我会把它放在我的后兜里,以免每个人都说“是的,这是唯一的方法!”)