在以下方案中,哪种设计模式(单例/工厂模式)是合适的



我的项目中有类似的读/写操作 此链接中类似

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

  1. 包含读/写方法的接口表示 A 类
  2. 接口方法的实现 类AImpl
  3. 工厂类包含如下代码

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

    我有以下疑问

  1. 在这种情况下,哪种设计模式适合组织此处的代码?
  2. 一次
  3. 又一次地重用同一个实例,而不是创建一个新实例有什么好处?

PS:应用程序的本质是Web应用程序。我正在尝试拥有一个集中的部分/模块,它可以在数据库中执行所有读/写操作。

有人请帮助我知道这一点。

主要原因是,如果需要,拥有单例将更容易同步读取,写入操作。这是对非线程安全资源(如文件系统 f.ex 中的文件)执行写入操作的情况。随着时间的推移创建新对象是没有意义的,并且可能会有多个线程尝试重写非线程安全资源。

就使用一次又一次创建类的工厂的优势而言。我真的看不出任何优势。

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

春季@Repository最佳实践

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

请让我知道这是否适合您。

正如你从文章中看到的,单例是与DAO/Repository结合使用的一种非常常见的方式。

最新更新