简单工厂设计模式
简单工厂设计模式不属于23种设计模式。但是它是工厂设计模式的基础。基本上是根据现实演变而来。现实生活不是就有工厂吗,工厂就是专门生产的。只能生产几种产品,客户需要其中哪一种,工厂就提供哪一种,如果没有就不能提供了。
应用场景:
只适合需要生产的种类比较少的情况如果你这个工厂需要创建十几个,甚至更多种类的时候,显然就不太合适了,要写好多类型,或者方法,就不满足设计模式的六大原则了。
在Android中,现在都是底部导航栏,上面是三个或者四个Fragment,这时候我就用的简单工厂模式。搞一个FragmentFactory,这个类负责创建导航栏需要的Fragment,点击不同的导航栏按钮,从FragmentFactory取出不同的Fragment。
特别简单的简单工厂类。
public class FragmentFactory {
private static MainFragment mainFragment;
private static PictureFragment pictureFragment;
private static SettingFragment settingFragment;
public static BaseFragment getFragment(int position){
switch (position){
case 0:
if (mainFragment == null)
mainFragment = new MainFragment();
return mainFragment;
case 1:
if (pictureFragment == null)
pictureFragment = new PictureFragment();
return pictureFragment;
case 2:
if (settingFragment == null)
settingFragment = new SettingFragment();
return settingFragment;
}
return null;
}
}
还有一种写法,就是写多个静态方法,不同的方法返回不同的Fragment。
使用简单工厂,可以把一部分逻辑放到工厂中,减少其他类的压力。