Simple Factory Pattern 简单的工厂模式

本文介绍简单工厂模式的概念及其应用场景,并通过创建手机实例的例子详细展示了该模式的实现过程。包括工厂角色、抽象产品角色及具体产品角色等核心组件。

简单的工厂模式  拥有三个角色
 1  工厂角色
  是简单工厂模式的核心,主要负责创建所有实例的内部逻辑
 2  抽象产品角色
  是简单工厂模式所创建的所有对象的父类,主要负责描述所有实例所共有的公共接口
 3 具体产品角色
  是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例
  
 应用情景
  1  工厂类负责创建的对象比较少
  2 客户之知道传人工人类的参数,对于任何创建对象不关心   
 3 一般只在比较简单的情况下使用
  
  
定义: 专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式
      又称为静态工厂方法模式,属于类的创建型模式,通常它根据自变量的不同返回不同的类的实例。  
  
  
抽象产品角色

package www.libinxuan.Mobile;

/**
 * 抽象产品角色
 * @author Administrator
 *
 */

public interface Mobile {
	public void creatMobile();
}

 

 

工厂角色

package www.libinxuan.Mobile;

/**
 * 工厂角色
 * @author Administrator
 *
 */

public class MobileFactory {
	public Mobile getMobile(String title) throws Exception{
		if(title.equalsIgnoreCase("nokia")){
			return new Nokia();
		}
		if(title.equalsIgnoreCase("motorola")){
			return new Motorola();
		} else{
			throw new Exception("no such" + title + "mobile found");
		}
	}
}

 

 

 

具体产品角色

package www.libinxuan.Mobile;

/**
 * 具体产品角色
 * @author Administrator
 *
 */

public class Motorola implements Mobile {

	@Override
	public void creatMobile() {
		System.out.println("一部Motorola手机生成了");

	}

}

 

package www.libinxuan.Mobile;

/**
 * 具体产品角色
 * @author Administrator
 *
 */

public class Nokia implements Mobile {

	@Override
	public void creatMobile() {
		System.out.println("一部Nokia手机生成了");

	}

}

 

 

 

测试

package www.libinxuan.Mobile;

public class Client {
	public static void main(String[] args){
		try{
			MobileFactory mf = new MobileFactory();
			Mobile m;
			m = mf.getMobile("nokia");
			m.creatMobile();
			m = mf.getMobile("motorola");
			m.creatMobile();
			m = mf.getMobile("sdsd");
			m.creatMobile();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值