【发布时间】:2010-01-07 02:46:39
【问题描述】:
有时我们会设计不止一种算法来获得相同的结果。例如,我编写了一个将我的数据存储在树中的类,以及另一个将大致相同的数据存储在链表中的类。
我将发布一个名为 ThingStore 的接口(抽象类),并将其子类化为 TreeThingStore 和 ListThingStore,分别使用树或链表。
但是,由于我要发布一个抽象类,我必须有人来决定使用哪个实现(EDIT:所以调用者不会关心这个),我没有有这个硬编码的问题。我不止一次需要这个,但是我没有成功地查看过 GoF 和其他设计模式目录。最相似的模式是“策略”模式,但它实现了不同的目标。
那么,是否有针对此意图的设计模式?如果没有,有人可以创建一个或告诉我为什么不应该这样做(或获得相同结果的更好方法)?
【问题讨论】:
标签: design-patterns oop