java类设计中的几个问题

java类设计中的几个问题,java,interface,enums,Java,Interface,Enums,我有一个Employee类和department类。现在在Employee中我有一个department作为它的成员。department可以是两种类型的“HR”或“Admin”。现在我应该在单独的界面中将DepartmentType声明为枚举,然后对department类进行建模,如下所示 public interface Myconstants{ enum Depttype{HR,Admin}; } public class Department{ Myconstants.De

我有一个Employee类和department类。现在在Employee中我有一个department作为它的成员。department可以是两种类型的“HR”或“Admin”。现在我应该在单独的界面中将DepartmentType声明为枚举,然后对department类进行建模,如下所示

public interface Myconstants{

  enum Depttype{HR,Admin};

}

public class Department{

 Myconstants.Depttype depttype;
 Department(Myconstants.Depttype depttype){
   this.deptype = deptype;
}

我只需在Department类上声明枚举

public class Department {

  public enum Depttype{HR,Admin};

  private Depttype depttype;

  Department(Depttype depttype) {
   this.deptype = deptype;
  }
}

如前所述,为什么不声明一个枚举呢


您正在声明一个枚举,然后将其包装到一个类中,没有明显的好处。

我不明白为什么枚举应该是接口的一部分。如果您想要的“部门类型”应该是“部门”的特征化,那么正确的方法似乎是将枚举声明为
部门
类的属性。

我们单独声明枚举,作为它们自己的常量目录中的简单枚举。Departmenttype将来可以在应用程序的其他地方使用吗?将所有常量/枚举保持在同一位置对开发人员来说很容易。

哪种做法更好?要像我或你那样在单独的界面中声明常量?@Maurice:我很困惑。Myne或eljensos哪个更好?
Depttype
是部门类型,因此它自然与部门绑定。无需创建单独的“全局”常量声明类型。谢谢大家。请帮我查看我为Nicolas Answer发布的新commnet。在评论中不要问这样的问题。你已经知道“提问”按钮在哪里了。好的,谢谢。现在我还有一个疑问。我想在我的应用程序加载时创建一个HR实例和一个Admin department实例(控制台应用程序)并在我的程序中使用这些实例。如何在不同的类中随处使用相同的实例?例如,我从csv文件中读取一名员工,然后创建一个员工对象。现在要创建员工对象,我必须使用department对象。我必须根据从文件中读取的department值设置适当的department值。如何设置要这么做吗?你似乎对Java很陌生。您应该首先阅读这里的教程:,但基本上,要做到这一点,您需要:1)阅读您的文档,创建class
Employee e;d部2)为每个员工创建
e=新员工()
d=新部门()3)将部门绑定到员工:
e.setDepartment(d)或,取决于您如何创建构造函数:
e=新员工(新部门(HR))谢谢。你能帮我看一下我为Nicolas的答案发布的新commnet吗