fragment和工厂设计模式结合结合

	class MyPagerAdapter extends FragmentPagerAdapter{
		private String[] tab_names;
		public MyPagerAdapter(FragmentManager fm) {
			super(fm);
			tab_names = UIUtils.getStringArray(R.array.tab_names);
		}

		@Override
		public Fragment getItem(int arg0) {
			//获取Fragment对应的工厂,如果当前内存中有对象的话,不创建,直接获取
			return FragmentFactory.createFragment(arg0);
		}

		@Override
		public int getCount() {
			return tab_names.length;
		}
		//指针顶部文字
		@Override
		public CharSequence getPageTitle(int position) {
			return tab_names[position];
		}
	}

public class FragmentFactory {
	private static HashMap<Integer,Fragment> hashMap = new HashMap<Integer, Fragment>();
	public static BaseFragment createFragment(int position) {
		BaseFragment baseFragment = null;
		//有对象就获取,没对象就创建
		if(hashMap.containsKey(position)){
			//从缓存中获取对象
			if(hashMap.get(position)!=null){
				baseFragment = (BaseFragment) hashMap.get(position);
			}
		}else{
			//没有对象的时候,创建
			switch (position) {
			case 0:
				baseFragment = new HomeFragment();
				break;
			case 1:
				baseFragment = new AppFragment();
				break;
			case 2:
				baseFragment = new GameFragment();
				break;
			case 3:
				baseFragment = new SubjectFragment();
				break;
			case 4:
				baseFragment = new RecommendFragment();
				break;
			case 5:
				baseFragment = new CategoryFragment();
				break;
			case 6:
				baseFragment = new HotFragment();
				break;
			}
			//缓存到本地
			hashMap.put(position, baseFragment);
		}
		return baseFragment;
	}
}

  

时间: 2024-11-02 13:29:18

fragment和工厂设计模式结合结合的相关文章

java设计模式之工厂设计模式(Factory)

设计模式根据使用类型可以分为三种:1. 创建模式: Factory (工厂模式). Singleton (单态). Builder ( (建造者模式). Prototype ( (原型模式).工厂方法模式. 2. 结构模式: Flyweight ( (共享模式). Bridge ( (桥模式). Decorator ( (装饰模式). Composite ( (组合模式). Adapter (适配器模式). Proxy ( (代理模式). Facade ( (外观模式). 3. 行为模式: It

工厂设计模式

工厂设计模式:是一种创建对象的模式,使代码的耦合.工厂模式就是给外部批量提供相同或者不同的产品,而外部不需要关心工厂是如何创建一个复杂产品的过程.所以工厂模式可以降低模块间的耦合,同时可以提高扩展性(当有新的产品出现时,只需要扩展工厂就行了,上层模块不敏感). 1:创建一个接口或者抽象类 2:实现接口(产品类) 3:创建一个工厂类:在工厂类里面创建对象(产品的实例化类) 4:在客户端创建工厂,得到我们想要创建的对象(客户端的引用) 1.)标准工厂方法模式 首先先介绍一下标准的工厂方法模式,不带任

简单工厂设计模式

说起设计模式,不得不从最简单的简单工厂设计模式开始说起. 简单工厂模式:定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常具有共同的父类.因为简单工厂模式中用于创建的方法是静态的,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,属于类创建型模式. 首先我们先看看下面这个类图: 在这个类图中,我们可以发现,静态工厂一共有三个对象是不可缺少的 1公共父类(Fruit接口) 2具体的产品类(Apple, Banana) 3静态工厂类(Simp

Java 工厂设计模式

//使用new关键字创建对象的缺点是耦合度太高,工厂设计模式利用Java的反射机制来实例化对象降低了这种耦合度 package cn.buaa; import java.util.Date; interface Fruit{  public void eat(); } class Apple implements Fruit{  @Override  public void eat() {   System.out.println("吃苹果");     } } class Orang

Abstract Factory Design Pattern 抽象工厂设计模式 - 总结

Abstract Factory Design Pattern 就是一般的Factory Design Pattern的进一步设计,增加一个抽象工厂,然后利用这个工厂可以创建不同基类的类. 当我们需要创建更多不同类的时候就可以使用这个设计模式了. 这个设计模式的代码相对会多点,但是其中的思想就是一般Factory Design Pattern,然后集合更多的基类,看起来挺大的一个设计模式,其思想是挺简单的. 其中具体的实现细节当然是可以有多种实现方法的: 1 利用Factory的基类衍生出不同的

学习笔记之简单工厂设计模式

工厂设计模式:根据一定的逻辑来负责对象的生产. 简单工厂设计模式:又称为静态工厂方法模式,由一个工厂类,根据传人的参数决定生产哪一种对象 三种角色:工厂角色,抽象产品角色,具体产品角色 故事:水果农场生产水果(苹果和香蕉),一个顾客直接去农场买水果 首先抽象角色: 水果接口 public interface IFruit { void growth(); } 具体产品角色:苹果,香蕉 public class Apple implements IFruit { public void growt

工厂设计模式的探讨——iOS类簇的应用分析

工厂设计模式的探讨--iOS类簇的应用分析 一.何为设计模式 什么是设计模式,先来看段度娘的话: 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的:设计模式使代码编制真正工程化:设计模式是软件工程的基石脉络,如同大厦的结构一样. 其实我们不需要这么专业,在我的理解,设计模式就是一种规范化的编程习惯,养成了这样的思想与习惯,

抽象工厂设计模式

/** 抽象工厂设计模式:与工厂设计模式是一样的,只不过抽象工厂是多产品系的. 工厂模式是单产品系的. 一个生产汽车的工厂,生产TopCar.TopBus,MidCar.MidBus,LowCar.LowBus. 利用抽象设计模式的方法,提取共同的特征. 当产生第四个SuperCar()类的时候,只需要在原来代码上增添SuperCar类实现接口,创建工厂即可. 而不需要再更改原来的代码. */ interface ICar{ //System.out.println("定义一些生产汽车共有的方法

ios 工厂设计模式

参考网址:http://doc.okbase.net/luozhonglan/archive/103843.html 1. 简单工厂模式 如何理解简单工厂,工厂方法, 抽象工厂三种设计模式? 简单工厂的生活场景,卖早点的小摊贩,他给你提供包子,馒头,地沟油烙的煎饼等,小贩是一个工厂,它生产包子,馒头,地沟油烙的煎饼.该场景对应的UML图如下所示: 图1:简单工厂模式UML图 简单工厂模式的参与者: 工厂(Factory)角色:接受客户端的请求,通过请求负责创建相应的产品对象. 抽象产品(Abst