我的应用程序应该使用什么架构?

时间:2015-09-04 10:07:00

标签: java oop

我正在创建一个由两种类型的作业管理器组成的应用程序。我有以下界面:

public interface IJobManager {
 public void add(Job job);
 public void delete(Job job);
}

通过这个界面,我想创建两种类型的管理器 - 一种是从文件中添加和读取信息,另一种是将其保存到数据库中。

public interface ITransactionJobManager extends IJobManager {
 //some additional functionallity
}

public interface IFileJobManager extends IJobManager {
 //some different functionallity
}

所以我的问题是如果我的应用程序读取例如环境变量(或来自.property文件的内容)并创建TransactionJobManager或{{1}的单个实例,我应该如何继续实现该体系结构? }。

2 个答案:

答案 0 :(得分:1)

一种可能的解决方案是创建JobManagerFactory,根据配置创建所需类型的作业管理器:

public class JobManagerFactory {

    public IJobManager createJobManager() {
        // Create the appropriate type of job manager according to the configuration
        return ...;
    }
}

请参阅:Factory method pattern

答案 1 :(得分:0)

ITransactionJobManagerIFileJobManager应该是abstract类,而不是接口。这样,您可以定义它们的功能,并在需要专门化更多这些作业时创建它们的子类。