我想实现一个复合模式Java
以便绘制软件开发组织图。因此,我们假设有多个项目经理和多个开发人员。每个开发人员都被分配给一位项目经理,并且每个开发人员都能够使用各种编程语言进行编码。项目经理领导开发人员并准确了解他们的工作量。
我对这个设计模式不是百分百确定,但我认为它是这个场景的完美用例,不是吗?
结果应该如下:
我想询问项目经理以检查所有能够使用特定编程语言进行编码的开发人员的工作量,例如Java
.
这是我到目前为止所拥有的:
员工.java:
public class Employee {
private String name = null;
public Employee() {
name = "Noob";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
编程语言.java:
public enum ProgrammingLanguages {
JAVA,
JAVASCRIPT,
C,
PHP,
SWIFT,
PYTHON
}
项目管理器.java:
import java.util.ArrayList;
import java.util.List;
public class ProjectManager extends Employee {
private List<Employee> employeeList = null;
public ProjectManager() {
employeeList = new ArrayList<Employee>();
}
public List<Employee> getEmployees() {
return employeeList;
}
public void setEmployees(List<Employee> employees) {
employeeList = employees;
}
public int getTotalWorkload() {
int workload = 0;
for (Employee employee : employeeList) {
workload += employee.getWorkload(); // Error! Cannot resolve method 'getWorkload()'
}
return workload;
}
}
开发商:
import java.util.ArrayList;
import java.util.List;
public class Developer extends Employee {
private List<ProgrammingLanguages> languagesList = null;
private int workload = 0;
public Developer() {
languagesList = new ArrayList<ProgrammingLanguages>();
}
public void setLanguagesList(List<ProgrammingLanguages> languagesList) {
this.languagesList = languagesList;
}
public void addProgrammingLanguage(ProgrammingLanguages language) {
languagesList.add(language);
}
public List<ProgrammingLanguages> getLanguagesList() {
return languagesList;
}
public void setWorkload(int workload) {
this.workload = workload;
}
public int getWorkload() {
return workload;
}
}
不幸的是,我在我的程序中遇到了编译器错误ProjectManager
类,知道为什么吗?
提前致谢。