design-patterns - 对象属性是否应该填充在构造函数中

标签 design-patterns architecture

我正在设计一个新的应用程序,但我尚未决定是否应该在构造函数中填充对象属性

Public Sub New(UserId as integer)
    ' get database values
    dr = DataReader
    Me.FirstName = dr.fields(0)
    Me.LastName = dr.fields(1)
End Sub

或者为每种对象类型创建一个带有方法的工厂?

Public Function getUser(UserId as integer) as User
    Dim myUser as new User
    ' get database values
    dr = DataReader
    myUser.FirstName = dr.fields(0)
    myUser.LastName = dr.fields(1)
    return myUser
End Function

我意识到代码很粗糙,但我希望它足以表达我的观点。我已经看到了这两种方法的实现,但不确定长期的利弊是什么。

具体来说,如果重要的话,我正在使用 VB.NET。

最佳答案

我的看法:

构造函数创建一个对象。 User 类的构造函数应该创建一个新用户。

静态成员函数,例如 getUser 检索已存在的对象。

我会使用后一种形式。

关于design-patterns - 对象属性是否应该填充在构造函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/470789/

相关文章:

ms-access - 客户端服务器应用程序的 MS Access 后端是否存在传输速度问题?

architecture - 使用域事件更新读取模型不会重复业务逻辑吗?

java - 如果我想在这种情况下减少样板代码,我应该使用继承吗?

design-patterns - 在这个问题中我应该使用什么设计模式?

design-patterns - 为什么单例被认为是反模式?

java - 架构/最佳实践 - GWT Web 应用程序中用于 dtos 的最佳方法/模式

database - Oracle 中的观察者模式

user-interface - 默认复选框状态 : checked or unchecked?

c# - 关于类型映射的最佳实践

c++ - 运行现有应用程序以更改数据库,好主意吗?