简单工厂设计模式,也就是静待工厂

场景,最近小米6很火啊,我也是小米的粉丝,就拿小米6来说,有黑色,白色,蓝色,三种非常亮的颜色。

先来代码,然后有疑惑,最后解释。

简单工厂设计模式有一个类是抽象类,是黑色,白色,蓝色手机的父类。

/** * 小米手机抽象类 *  * @author sdc * */public abstract class XiaoMiProduction {	/**	 * 生产小米6的方法	 */	public abstract void createXiaoMi6();	}

蓝色手机生产类。

public class XiaoMi6Blue extends XiaoMiProduction{	@Override	public void createXiaoMi6() {		// TODO Auto-generated method stub		System.out.println("生产亮蓝版本小米6");	}}

白色手机生产类。

package com.test4;public class XiaoMi6White extends XiaoMiProduction{	@Override	public void createXiaoMi6() {		// TODO Auto-generated method stub		System.out.println("生产亮白版本小米6");	}	}

黑色手机生产类:

public class XiaoMi6Black extends XiaoMiProduction{	@Override	public void createXiaoMi6() {		// TODO Auto-generated method stub		System.out.println("生产亮黑版本小米6");	}}

工厂类产生,生产小米6的工厂类。

/** * 生产小米6的工厂 *  * @author sdc * */public class XiaoMi6Factory {	// 蓝色	private static final String blule = "blue";	// 黑色	private static final String black = "black";	// 白色	private static final String white = "while";	/**	 * 静态工厂方法	 * @param colour	 * @return	 */	public static XiaoMiProduction createXiaoMi6(String colour) {		XiaoMiProduction xmP = null;		switch (colour) {		case black:			xmP = new XiaoMi6Black();			break;		case blule:			xmP = new XiaoMi6Blue();			break;		case white:			xmP = new XiaoMi6White();			break;		}		return xmP;	}}

说明:

生产哪一种颜色的手机,有你给传入到工厂类里的参数决定的,这个静态方法会返回给你一个具体的生产类。用这个生产类来去调用具体的业务逻辑。

角色划分:

抽象产品角色:就是上文提到的XiaoMiProduction这个抽象类,是那父类,可以是接口也可以是抽象类。

具体产品角色:就是生产三种颜色的手机类,具体的业务逻辑。

工厂角色:就是XiaoMi6Factory这个类,作用就是生产具体的产品的类,里面提供一个静态方法,提供给外部调用。