Android 设计模式 笔记 - 工厂方法模式

Posted 鲨鱼丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 设计模式 笔记 - 工厂方法模式相关的知识,希望对你有一定的参考价值。

介绍:

是创建型设计模式之一。工厂模式是一种结构简单的模式,平时运用广泛,比如Activity中的onCreate方法其实可以看做一个工厂模式

定义:

定义一个用于创建对象的接口,让子类决定实例化哪个类。

使用场景:

在任何需要生成复杂对象的地方都可以使用工厂模式。用new就可以完成创建的对象无需使用工厂模式。

角色:

  • 抽象工厂
  • 具体工厂
  • 抽象产品
  • 具体产品

其中抽象工厂是工厂方法的核心,具体工厂是具体的业务逻辑,抽象产品是所创建产品的父类,具体产品是实现抽象产品的具体对象。

简单实现:

package com.mabibin.eg.factory;
/**
 * 抽象产品
 * @author binbin.ma
 *
 */
public abstract class Product 
	public abstract void method();


package com.mabibin.eg.factory;
/**
 * 具体产品A
 * @author binbin.ma
 *
 */
public class ProductA extends Product

	@Override
	public void method() 
		System.out.println("产品A");		
	



package com.mabibin.eg.factory;
/**
 * 具体产品B
 * @author binbin.ma
 *
 */
public class ProductB extends Product 

	@Override
	public void method() 
		System.out.println("产品B");
	



package com.mabibin.eg.factory;
/**
 * 抽象工厂
 * @author binbin.ma
 *
 */
public abstract class ProductFactory 
	public abstract <T extends Product> T createProduct(Class<T> cls) ;


package com.mabibin.eg.factory;
/**
 * 具体工厂
 * @author binbin.ma
 *
 */
public class CreateFactory extends ProductFactory

	@Override
	public <T extends Product> T createProduct(Class<T> cls) 
		Product product = null ;
		try 
			product = (Product) Class.forName(cls.getName()).newInstance() ;
		 catch (InstantiationException e) 
			// TODO Auto-generated catch block
			e.printStackTrace();
		 catch (IllegalAccessException e) 
			// TODO Auto-generated catch block
			e.printStackTrace();
		 catch (ClassNotFoundException e) 
			// TODO Auto-generated catch block
			e.printStackTrace();
		
		return (T) product ;
	

	


package com.mabibin.eg.factory;
/**
 * 实现
 * @author binbin.ma
 *
 */
public class Client 
	public static void main(String[] args) 
		ProductFactory factory = new CreateFactory() ;
		Product product = factory.createProduct(ProductA.class) ;
		product.method();
	



以上是关于Android 设计模式 笔记 - 工厂方法模式的主要内容,如果未能解决你的问题,请参考以下文章

java/android 设计模式学习笔记---工厂方法模式

Android 设计模式 笔记 - 抽象工厂模式

java/android 设计模式学习笔记(10)---建造者模式

设计模式笔记-简单工厂模式,工厂方法模式,抽象工厂模式

设计模式笔记-简单工厂模式,工厂方法模式,抽象工厂模式

大话设计模式读书笔记——工厂方法模式