将数据设置为类属性

时间:2014-05-23 06:57:09

标签: class oop attributes

我是软件设计的新手。 我创建了一个类(DTO)用户,其中包含20个带附件方法的属性。 必须将此对象更新到DB表中。 我必须使用setter方法将数据设置为User对象。

要做到这一点,我是否需要调用20个setter方法或者是否有任何标准的替代方法? 类(DTO)可以包含更多属性吗?

这是我的班级

enter image description here

2 个答案:

答案 0 :(得分:0)

回答你的直接问题,答案是 - 没有标准方法。所有选项都是开放的,每个Att都有一个getter / setter,将它们公开为私有数据成员并直接访问,创建一个或多个接口,以便更多地访问它们等等。所有这些都取决于系统的其他方面及其设计。

DTO可以包含您希望的任意数量的属性。如果可以,这是另一个问题。

即使没有看到你的具体例子,我敢于怀疑这个DTO可以在几个较小的DTO中被打破。

对其进行进一步分析。是否可以使用继承来打破它?他们使用组合结构?最后甚至可能是正常的联想。

拥有更多更小,更明智的相关元素总是更好,拥有一个大的blob对象。整个OO范式都是关于更好的阶级设计。

如果您发布DTO(名称和atts)的详细信息,我可能会给您一些关于重构的建议。

答案 1 :(得分:0)

使用setter很常见。另一种方法是声明一个构造函数,它在一次调用中初始化对象,但是20个参数似乎太多了。根据User对象的初始化方式,Builder pattern可能对您有用。你还应该看看你的表,看看是否可以使用normalization进一步分解它,这样你就可以得到更小的表。如果您仍然需要初始化对象中的大量字段,请考虑使用fluent interface来缩短代码。