1.工厂模式也是我们最常见的一种模式了,可以用来创建多个不同的实例对象。Android代码中最常见的应该是对Fragment的集中管理了。用Fragment工厂,创建出不同的fragment。
2.eg: 现在的app大多数都是由少数几个activity和众多的fragment组成,那么针对这些fragment,我们可以开辟一个工厂,针对不同的需求生产不同的fragment,请参考如下代码:
public class FragmentFactory {
//将已经new 出来的fragment储存起来
private static HashMap<Integer, BaseFragment> fragmentMap = new HashMap<Integer, BaseFragment>();
public static BaseFragment createFragment(int position){
//从集合中取,没有的话再newfragment
BaseFragment fragment = fragmentMap.get(position);
if(fragment==null){
switch (position) {
case 0:
fragment = new HomeFragment();
break;
case 1:
fragment = new AppFragment();
break;
case 2:
fragment = new GameFragment();
break;
case 3:
fragment = new SubjectFragment();
break;
case 4:
fragment = new RecommendFragment();
break;
case 5:
fragment = new CategoryFragment();
break;
case 6:
fragment = new HotFragment();
break;
default:
break;
}
fragmentMap.put(position, fragment);
}
return fragment;
}
}