这是软件设计中的一个初学者问题。 我有一个这样的课程
ProductProperty
----------------
+product_property_id:int
+values:array
+current_value:string
在前端场景中,我使用此类为产品及其属性建模可能的值(值是一个字符串数组)和选定的值(current_value包含存储在值中的特定字符串)。
在后端?我应该在那里使用不同的课吗?我的意思是我使用这个类来创建具有属性的新产品。我实例化像new ProductProperty(435, NULL, bla, bar, bah)
这样的对象来创建和存储像
{
id:435,
values:['bla','bar','bah'],
current_value:NULL
}
并且永远不要使用current_value-Property。
例如,为了存储订单,我当然填充了current_value属性,但实际上并没有使用values数组。
这样就好了,还是我必须为每个案例创建单独的类。
答案 0 :(得分:1)
好的做法是使用像对象(VO)或数据传输对象(DTO)这样的模式。这意味着您必须仅使用要从图层传输到另一个图层的属性创建另一个类。我发现在比你的例子复杂得多的情况下,它是必需的和有用的。考虑到同一实体的许多类,系统维护工作量往往远高于使用充满空属性的类,因为计算能力比程序员小时费用便宜。
查看有关差异的文章:http://www.adam-bien.com/roller/abien/entry/value_object_vs_data_transfer