我想为员工和主管层级创建一个用于采购订单批准的类。这里创建了三个类1)Person Class 2)Employee Class 3)Supervisor class 人员类别由人名组成,该人员将分别在其员工和主管职等中分配为员工或主管。当主管上面还有一名主管时,问题就出现了,因为我无法再将主管创建为员工。你能告诉我如何建立一个审批结构,即使主管有一个主管,他也可以批准采购订单。
谢谢&问候, 约杰什
答案 0 :(得分:0)
布置课程设计的最佳方式是使用" IS A"测试
员工" IS A"因此,员工阶层应该扩展人类。
主管" IS A"员工,因此主管班应该扩展员工类。
关于拥有主管的主管,主管应该是员工类中的一个领域,这样每个员工(并且记住主管" IS A"员工)都有一个主管。
现在,在您的员工类中,您可以使用processPurchase()方法检查其主管,然后在主管类中,您可以覆盖此方法,以便它不需要与其主管核实。
如果主管需要与他的主管核实,班级结构将保持不变,但方法会有所不同。在员工的processPurchase()方法中,他只是要求他的主管处理它。但是,在主管的processPurchase()中,他需要检查他是否有一个主管,然后采取相应的行动,所以在半伪代码中:
public class Supervisor extends Employee {
//constructor
public Supervisor(){};
public processOrder(){
if(this.getSupervisor() == null){
//Don't have a supervisor, send out the order
} else {
this.getSupervisor().processOrder();
}
}
}
请记住,Employee类需要包含supervisor字段和访问器方法,然后Supervisor类将继承它们