在我的项目中组织读/写操作的更好方法

我的代码包含以下读/写方法来将数据写入数据库

阅读方法如

  1. public byte [] readFile(arg1)
  2. public byte [] readFile(arg1,arg2)
  3. public InputStream readFile(arg1,arg2)
  4. public MyStream readFile(arg1,arg2)
  5. public byte [] readFile(arg1,arg2,arg3)

写方法如

  1. public String [] writeFile(arg1)
  2. public String [] writeFile(arg1,arg2)
  3. public MyStream writeFile(arg1,arg2) – > file是从此输出流中写入的
  4. public String [] writeFile(arg1,arg2,arg3)

各种类别访问这些方法用于读写目的。 请以更好的方式为我提供更好的组织方式。

我希望有一个集中的部分,我的所有读/写都会发生。

有人请帮我选择合适的模式来组织这个。

你可以这样做:

interface DatabaseServices { ... listing all the methods that you want to "combine" class DatabaseServicesImpl implements DatabaseServices { ... implementing all those methods enum DatabaseServicesProvider implements DatabaseServices { INSTANCE; private final DatabaseServices impl = new DatabaseServicesImpl(... ... forwarding all service calls to the impl object 

上面的优点是它是“完全”单元可测试的(如果你只是创建一个枚举并在其上放置方法;你破坏了测试使用枚举的客户端的能力)。

从那里,您将进入现有的源代码,并丢弃当前访问您的数据库的所有方法; 用像这样的电话替换它们

 DatabaseServices services = DatabaseServicesProvider.INSTANCE; ... services.whatever() 

其中:“枚举部分”在某种程度上是可选的。 但是经常你会发现你想要这样的数据库相关服务是一个中心权威的事情(换句话说:一个单身人士)。 枚举只是为“全局”方面提供了一个漂亮,干净的解决方案。 如果你不需要一个中心实例(无论如何这实际上都是更好的事情),那就忘了那个部分。