import android.support.v4.app.Fragment;
import java.util.HashMap;
import java.util.Map;
public final class FragemntFactory {
/**
* 1.私有构造,不让创建这个对象,只可以通过方法创建其子类对象
*/
private FragemntFactory() {
}
// 2.Fragment集合,用来存储已经创建的fragment,并且
private static Map<Class, Fragment> mFragmentMap = new HashMap<>();
/**
* 3.获取事例的方法
*
* @return
*/
public static synchronized Fragment getInstance(Class<? extends Fragment> clazz) {
// 1.首先从集合中取出来,
Fragment fragment = mFragmentMap.get(clazz);
// 2.如果集合中不存在则会取出一个空的
if (fragment == null) {
try {
// 3.空的话就去创建
fragment = clazz.newInstance();
// 4.创建成功后就保存进集合
mFragmentMap.put(clazz,fragment);
} catch (Exception e) {
}
}
return fragment;
}
}