我正在创建一个由两种类型的作业管理器组成的应用程序。我有以下界面:
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}的单个实例,我应该如何继续实现该体系结构? }。
答案 0 :(得分:1)
一种可能的解决方案是创建JobManagerFactory
,根据配置创建所需类型的作业管理器:
public class JobManagerFactory {
public IJobManager createJobManager() {
// Create the appropriate type of job manager according to the configuration
return ...;
}
}
答案 1 :(得分:0)
ITransactionJobManager
和IFileJobManager
应该是abstract
类,而不是接口。这样,您可以定义它们的功能,并在需要专门化更多这些作业时创建它们的子类。