在以下场景中哪个是合适的设计模式(单例/工厂模式)?

时间:2016-07-09 19:31:17

标签: java design-patterns singleton factory

我的项目中的读/写操作类似于link

答案中建议的模式是Singleton Pattern,它是用枚举实现的。但是我遇到了我们正在关注的代码

  1. 包含读/写方法的接口说ClassA
  2. 接口方法ClassAImpl的实现
  3. 工厂类包含以下代码

      public class ClassAFactory { 
    
           public static ClassAFactory getInstance() throws Exception {
    
                 return new ClassAImpl();
             }
        }
    

    我有以下疑惑

  4.   
        
    1. 在这种情况下,在这里组织代码的适当设计模式是什么?
    2.   
    3. 一次又一次地重复使用同一个实例的优势是什么,而不是创建一个新实例?
    4.   

    PS:应用程序的本质是Web应用程序。我正在尝试使用集中式部件/模块来完成数据库中的所有读/写操作。

    有人请帮助我了解这一点。

1 个答案:

答案 0 :(得分:0)

主要原因是如果需要,使用Singleton将更容易同步READ,WRITE操作。对于非线程安全资源(例如来自文件系统f.ex的文件)的写操作,这是n的情况。创建一个新对象超时是没有意义的,并且可能会有多个线程试图通过非线程安全资源进行写入。

在使用一次又一次创建课程的工厂方面的优势。我真的没有看到任何优势。

根据您上次编辑进行更新。您可以使用存储库模式或DAO,它们可以是单例还是非单例。请阅读以下帖子。我相信这就是你所需要的:

Spring @Repository best practices

还有一个小小的澄清。它说Spring,但实际上这些原则可以应用于任何情况。因此,您不需要Spring才能应用本文中讨论的主题。

如果这对你有用,请告诉我。

从文章中可以看出,Singleton是与DAO / Repository结合使用的常用方法。