我今天收到了一封来自同事的电子邮件。我的问题是这是否准确。嵌套业务对象是不好的做法吗?有人可以对此发表意见吗?
嵌套对象 当在C#中创建任何变量时,它会占用Web服务器上的一部分内存。由于我们将在同一台服务器上运行许多工具,因此更加重要的是要确保我们不会创建不需要使用的对象。
以上面第二个员工对象为例... 如果我们还需要知道员工的主管ID...(并且这是该工具正在填充和使用的全部内容),我们将希望确保Employee类包含适当的信息,并考虑到工具中的内存和进程。
我们将添加'supervisorId'字符串变量到Employee类中,并添加适当的Getter和Setter。
另一方面,我们将希望避免在employee对象中嵌套另一个对象。例如: public class Employee { private string firstName; private string lastName; private string empId; private Employee supervisor;
public string FirstName {
get { return firstName; }
set { firstName = value; }
}
public string LastName {
get { return lastName; }
set { lastName = value; }
}
public string EmpId {
get { return empId; }
set { empId = value; }
}
public Employee Supervisor{
get { return supervisor; }
set { supervisor = value; }
}
}
在这种情况下,我们可能不总是使用Employee对象的'Supervisor'实例中的值,而是在内存中创建变量。这可能会对性能产生潜在的灾难性影响。
有一些情况下需要嵌套对象: 例如:(Category :: Question)每个类别可以分配一个问题数组列表。