我有一个看起来像这样的java类。
public class TestImpl implements TestInterface{
private static Fetcher mapFetcher = null;
private Map<String,String> maps = null;
static{
mapFetcher = new Fetcher();// Fetcher's constructor executes logic to evaluate maps
}
public TestImpl(){
maps = mapFetcher.getMaps();
}
我现在有一个不同的类,它执行不同的逻辑来计算地图。我想决定使用从文件中读取的标志使用哪种逻辑
所以我认为我可以创建一个接口MapfetchersInt
,并且会有类Fetcher1
和Fetcher2
来实现MapfetchersInt
并且有自己的逻辑来在类中设置地图TestImpl
。
Interface MapfetchersInt{}
Fetcher1 implements MapfetchersInt{}
Fetcher2 implements MapfetchersInt{}
然后TestImpl将是
public class TestImpl implements TestInterface{
private static MapfetchersInt mapFetcher = null;
private Map<String,String> maps = null;
static{
if(flag != null && flag.equals("A"))
mapFetchersInt = new Fetcher1();
else
mapFetchersInt = new Fetcher2();
}
public TestImpl(){
maps = mapFetcher.getMaps();
}
我想知道这是否是实现此目的的正确方法。我被TestImpl类中的mapFetcher抛弃为静态。有更好的方法吗?