我可以使用这样的实用程序类吗?
public final class ProfessorDirectory {
private static Map<String, Professor> directory = new HashMap<>();
private ProfessorDirectory() {
throw new IllegalStateException("Utility Class");
}
static void addProfessorsFromDescription(String description) {
String regex = "(?<=\\n).* .*(?=\\n)";
Matcher m = Pattern.compile(regex).matcher(description);
while (m.find()) {
String professorName = Professor.formater(m.group(0));
directory.put(professorName, new Professor(professorName));
}
}
public static Professor get(String firstName, String lastName) {
return directory.get(Professor.formater(firstName, lastName));
}
}
我用它创建了一个图书馆,您可以在其中检索教师的计划。
使用示例:
Planning professorPlanning = schedules.getPlanningOf(ProfessorDirectory.get("Jack", "Sticky"));
ProfessorDirectory
在内部初始化,不应由用户初始化。
答案 0 :(得分:1)
这种方法有一些缺点,即具有静态数据和方法的方法。
您永远不能拥有多个 ProfessorDirectory
,即使您发现拥有多个会很有用。
很难测试 ProfessorDirectory
的客户端,因为它们必须使用真实的代码,而不是能够模拟接口。
您排除使用一些有用的模式。例如,您无法编写实现 ProfessorDirectory
接口并包装该接口的任意实现的缓存代理。
总的来说,这是一个糟糕的方法。