设计何时模型可以有三种不同的类型?

时间:2012-07-27 13:45:31

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

如果我有一个Dog模型,您可以选择它为Types中的1个,分别为Small,Medium和Large。如果我要在其中加入逻辑,这些类型本身应该是模型吗?什么是模型设计?

1 个答案:

答案 0 :(得分:2)

所有不同类型都有一个共同的界面,但逻辑上有所不同吗?

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