我有一个大学管理门户。我必须创建以下类来描述模型。
class Address
{
String street;
String city;
}
class Contact
{
String phone;
String mobile;
}
abstract class Person
{
String name;
String age;
Address address;
Contact contact;
}
class Student extends Person
{
String course;
String stream;
String rollno;
}
class Faculty extends Person
{
String department;
String faculty id;
}
现在我应该使用 getter-setter 方法来进行实例初始化还是构造函数?
Person 类中的聚合怎么样?
构造函数应该如何在那里工作?
是的,我认为你应该为模型对象提供 getter 和 setter 方法。您的类的属性应该设为私有。 构造函数用于允许为对象构造传递强制信息,没有这些信息就无法构建对象(或者对象是无用的)。就像你无法创造一个没有名字和年龄的人一样。根据您的情况,地址和联系方式可以是可选的。因此您可以使用 mutator 方法设置地址/联系信息。
正如 Srinivas 提到的,构造函数并不是 mutator 方法的替代品。 构造函数的目的是为对象构造提供强制性的东西。就像没有原材料就无法建造建筑物一样。
对于这些东西,你需要“beans”=私有成员变量,每个变量都有 getter 和 setter。根据您的需要,您可以创建一个构造函数,该构造函数在实例化时在对象中设置某些参数,但也可以不直接通过设置器设置(因为某些设置器可能以某种方式对设置值进行操作,因此最好不要直接搞乱这样的东西。student =“name”)。
对于教员案例,我不明白为什么它会扩展 Person,而且我认为它不应该扩展。正如您所说,这些模型应该反映数据库中表的结构,因此它们至多都会扩展一个抽象类或实现某个接口,但彼此之间不会扩展。
对于人员聚合,我也认为联系人和地址应该是整数,因为它们代表另一个表中的外键,并考虑多对多关系的情况。
模型首先是应用程序中数据库的反映。