0

如果我有一个Dog模型,您可以将其选择为Types小、中和大的 3 个中的 1 个。如果我要在其中添加逻辑,这些类型本身应该是模型吗?模型设计是什么?

4

2 回答 2

2

如果 Small、Medium 和 Large 各有独特的方法但共享共同的属性,你可以有一个基本的 Dog 模型,然后对每个大小进行子类化,如class SmallDog < Dog. type通过添加一个接受“SmallDog”等值的列,在 dogs 表上使用单表继承。

于 2012-07-27T14:00:08.957 回答
2

所有不同的类型都会有一个共同的接口,但它们的逻辑不同吗?

如果接口是相同的(即它们都具有相同的函数定义),那么我只需为每种不同类型的狗创建子类,这些子类扩展原始 Dog 模型并拥有某种处理 Dog 创建的工厂类模型并根据 Dog 的类型自动选择适当的类。通过使用具有 Dog 类型通用接口的工厂类,应用程序的其余部分不需要关心 Dog 的类型,您可以通过简单地修改工厂类来自由添加/删除新类型。

于 2012-07-27T14:06:56.037 回答