Java如何实现良好实践:在实用程序类中映射

Java如何实现良好实践:在实用程序类中映射,java,dictionary,utility-method,Java,Dictionary,Utility Method,我可以使用这样的实用程序类吗 公开期末班教授目录{ 私有静态映射目录=new HashMap(); 私人教授名录(){ 抛出新的IllegalStateException(“实用程序类”); } 静态void addProfessFromDescription(字符串描述){ String regex=“(?此方法有一些缺点,即使用静态数据和方法的方法 你永远不能拥有多个教授目录,即使你发现拥有多个目录会很有用 测试ProfessorDirectory的客户机很困难,因为他们必须使用真实的代码

我可以使用这样的实用程序类吗

公开期末班教授目录{
私有静态映射目录=new HashMap();
私人教授名录(){
抛出新的IllegalStateException(“实用程序类”);
}
静态void addProfessFromDescription(字符串描述){

String regex=“(?此方法有一些缺点,即使用静态数据和方法的方法

  • 你永远不能拥有多个
    教授目录
    ,即使你发现拥有多个目录会很有用

  • 测试
    ProfessorDirectory
    的客户机很困难,因为他们必须使用真实的代码,而不能模拟接口

  • 您排除了使用一些有用的模式。例如,您不能编写实现
    ProfessorDirectory
    接口并包装该接口的任意实现的缓存代理


  • 总的来说,这是一个糟糕的方法。

    如果同时为同一教授调用两个、三个或四个AddProfessFromDescription,会发生什么?如果您添加了一个delete方法?-提示:如果共享了一个映射,请同步它。@aran暂时不会多次调用它,因为它在单例类中使用。但是如果发生这种情况,我会我想我会在add方法中添加一个Synchronized。你认为这是一个好的解决方案吗?我自愿创建这个类,以便只有一个
    ProfessorDirectory
    ,其中包含学校中的所有教师。我在这里测试了这个类:。为什么要用一个只使用映射的类创建缓存代理?你的方法对y来说可能绝对合适我们的应用程序,但我不认为它“遵循Java中良好的代码实践”。