Java:明智的课程

时间:2013-06-24 21:53:57

标签: java class abstraction

我有一个Contact课程,目前唯一的目的是有一个姓名和地址(它本身分为街道和城市)。我应该:

A)在我的Contact班级或

中有姓名,街道和城市字段

B)有单独的NameAddress类,并将它们附加到具有合成关系的Contact

目前我可以看到选项A是合理的,因为情况简单,但B似乎也是合理的,因为可以在NameAddress之后添加额外的操作,而不会使{{1抽象。将街道和城市数据分组在一个更具体的抽象中,而不仅仅是Contact,这似乎也是有意义的。

这个问题的上下文是一个考试问题,所以重点是创建一个具有敏感类的小应用程序。

哪个选项更好?谢谢你的任何建议。

2 个答案:

答案 0 :(得分:2)

如果姓名是一个人名,我会选择姓名,姓氏等人的单独课程,然后上课与街道,邮政编码,电子邮件,电话号码,电话联系。

如果name是与联系人详细信息相关的建筑物名称,我会选择一个包含其中所有字段的Contact类。

答案 1 :(得分:1)

问题是,什么代表一个名字?有行为吗?不能像字符串一样表示?

你可以创建一个班级联系人和一个班级人,人是班级联系人的代表 例如

class Contact {

Person person;

public String getContactName(){
  return person.getContactName();
}

}