【问题标题】:Object design for create new user创建新用户的对象设计
【发布时间】:2021-11-27 18:26:52
【问题描述】:

本周我面临一个问题,因此我决定使用一种我不确定是否正确的方法。所以我需要你的帮助来帮助我理解我可能做错了什么。

我有两种类型的用户:内部用户和外包用户,他们有一些不同的属性。我认为要做的是。

所以我创建了一个员工类,它聚合了所有的公共属性

public abstract class Employee {

private String name;
private String address;
private String telephone;
private String cpf;
private Integer age;

具有 2 个以上属性的外包类

public class Outsourced extends Employee {

private String companyName;
private Date endDate;}

还有一个内部用户的内部。

public class Internal extends Employee {}

拥有这个内部课程是否正确,或者我应该使用员工作为内部人员?有一个没有属性的类对我来说似乎是错误的,但同时我认为使用内部用户的员工类来通用,如果有一天我们创建一种新的用户,我们会遇到一些问题。

无论如何感谢您的帮助:)

【问题讨论】:

  • 顺便说一句,可怕的 DateCalendar 类在几年前被 JSR 310 中定义的现代 java.time 类所取代。你可能想要@987654326 @类。

标签: java oop


【解决方案1】:

我觉得很好。使用这种方法,如果有一天您需要为所有类型的员工添加一些公共属性(通过将其添加到Employee),或者向Outsourced 或@ 添加一些新属性,您将拥有一个易于扩展的业务模型987654323@ 甚至创建一个新类型的 Employee(通过扩展抽象 Employee)。我会说你很高兴继续你的实施。

【讨论】:

    【解决方案2】:

    完全正确。

    首先,您可能希望稍后将一些特殊逻辑或字段附加到InternalstaffNumber 例如。一个单独的类的存在让处理它太容易了。

    其次,您可能希望在一段时间内将代码中的 InternalOutsourced 实例分开。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-21
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-08
      • 1970-01-01
      相关资源
      最近更新 更多