'registerCustomer()'应该在Customer类还是main / driver类中

时间:2018-08-12 12:17:14

标签: java class methods

说我想实现以下方法:

void registerCustomer();
void displayCustomer();
void editCustomer();
void deleteCustomer();

说我有以下课程:

public class Main {
    public static void main(String[] args) {
        // put your stuff here
    }

    // void registerCustomer() { ... }
}

public class Customer {
    // data fields - id, name, etc
    // constructors, setters, getters

    // void registerCustomer() { ... }
}

我应该在Main类还是Customer类中实现方法?

我能够以任何一种方式实现它们而不会出错。但是,哪种“更好”的方式呢?我应该怎么做?

2 个答案:

答案 0 :(得分:3)

更改或提取单个客户状态的方法,即姓名,电话号码,身份证号码,....,或单个客户固有行为的一部分,成为客户类的一部分。

更改Customer集合状态的方法-添加Custmoer,删除,选择...应该在其自己的类中的其他位置(或主类,如果这是唯一的其他类)。 / p>

所以...

这些都不是客户本身的一部分,因为它们似乎与客户的集合或分组一起工作,并且不关注单个客户的状态:

public boolean equals(Object obj) {
    if (obj instanceof Integer) {
        return value == ((Integer)obj).intValue();
    }
    return false;
}

public static int hashCode(int value) {
    return value;
}

您可能会说void registerCustomer(); void displayCustomer(); void editCustomer(); void deleteCustomer(); 应该属于Customer类,因为它似乎是在编辑单个Customer,但是我认为不是,这似乎是在尝试更改集合中所选Customer的状态。或某种GUI。

答案 1 :(得分:0)

这些方法应该在其他地方而不是Customer类中实现。我建议您创建另一个名为CustomerService的类,并将其实现为方法。另外,不要忘记为您的方法提供参数:)