【问题标题】:How to create this model for Struts MVC?如何为 Struts MVC 创建这个模型?
【发布时间】:2011-03-18 06:59:14
【问题描述】:

我有一个大学管理门户。我必须创建以下类来描述模型。

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 类中的聚合呢??

构造函数应该如何在那里工作??

【问题讨论】:

  • 构造函数不是setter的替代品..
  • 实际上我不希望用户知道我在 Person 类中使用了 Contact 和 address 类。我只是让他们直接使用学生和教师课程。那么我的 Student 类的构造函数应该是什么形式?我想我必须创建一个参数化的构造函数,它将有 9 个参数。[3 个学生类属性,2 个人员类属性,2 个联系人类道具和 2 个地址类道具]。我说的对吗?
  • 正如你提到的你不希望你的用户知道你的类的结构,你可以有一个工厂来创建任何人,你将所有信息作为参数传递,然后构造所需的对象来构建人目的。但是我不明白你为什么不希望用户知道联系人和地址对象。
  • 其实我很好奇这会如何解决!!

标签: java model-view-controller model core


【解决方案1】:

是的,我认为您应该为模型对象设置 getter 和 setter 方法。你的类属性应该是私有的。 构造函数用于允许为对象构造传递强制性信息,否则无法构建对象(或对象无用)。就像你不能创造一个没有名字和年龄的人。在您的情况下,地址和联系方式很多是可选的。因此,您可以使用 mutator 方法设置地址/联系信息。

正如 Srinivas 提到的,构造函数不是 mutator 方法的替代品。 构造函数的目的是使强制性事物可用于对象构造。就像没有原材料就无法建造建筑物。

【讨论】:

  • Getter & Setter 方法或访问器方法称为 mutator 方法。
【解决方案2】:

对于这些东西,您需要“beans” = 私有成员变量,每个变量都有 getter 和 setter。根据您的需要,您可以创建一个构造函数,该构造函数在实例化时在对象中设置某些参数,但也可以不直接通过设置器设置(因为某些设置器可能以某种方式对设置值进行操作,所以最好不要直接搞砸像 this.student = "name") 这样的东西。

对于教职员工的案例,我不明白为什么它会扩展 Person 并且我认为它不应该。正如您所说,这些是模型,它们应该反映数据库中表的结构,因此它们中的每一个最多都可以扩展一个抽象类或实现某个接口,但不能相互实现。

对于人员聚合,我也认为联系人和地址应该是整数,因为它们代表另一个表中的外键并考虑多对多关系的情况。

模型首先是数据库在应用程序中的反映。

【讨论】:

  • 模型对象不一定是表格表示。它们用于存储域对象的信息,或者可以构建以将信息传输到应用程序中的其他层以提供松散耦合。
  • 教师必须到那里。并且数据库将基于模型。最好使用 Student 类和 Faculty 类的构造函数并仅将 Person 道具和 Student 道具作为参数?以及如何在不让使用上述代码的程序员接触到 Contact 和 Address 类的情况下调用 Contact 和 Address getter 和 setter。
猜你喜欢
  • 2013-02-01
  • 2015-10-31
  • 1970-01-01
  • 1970-01-01
  • 2013-11-25
  • 2012-07-01
  • 1970-01-01
  • 2012-12-09
  • 2014-08-23
相关资源
最近更新 更多