创建一个IProduct,后面模拟业务时要用到
package com.xiawei.factory;
public class IProduct {
private String productNo = "";
}=====================================================
package com.xiawei.factory;
/** * 规范工厂接口 </p> *///创建一个所有工厂的规范接口,后面所有的工厂类都要来实现这个接口,并且要实现其方法.//这样只需向用户提供这个工厂接口就行.public interface StandardFactory {public IProduct createProduct(String productNo);
}======================================================
package com.xiawei.factory;
//定义具体工厂A类
public class ProductFactoryA implements StandardFactory{
@Override
public IProduct createProduct(String productNo) { //模拟工厂1生成产品对象规则 IProduct product = new IProduct(); return product; }}
======================================================
package com.xiawei.factory;
//定义具体工厂B类
public class ProductFactoryB implements StandardFactory{
@Override
public IProduct createProduct(String productNo) { //模拟工厂B生它的产品对象规则 IProduct product = new IProduct(); return product; }}
=================================================
package com.xiawei.factory;
//其实所谓抽象工厂,就是在普通工厂类外面套上了一层可选择的工厂类//在这之前给他们规定一个统一的接口,然后让所有的工厂类都出实现它//并实现它的接方法/** * 创建抽象工厂类 </p> * 这个工厂类不具体指定返回的工厂对象,条件满足那个就返回那个对象 */public class ProductFactory implements StandardFactory{@Override
public IProduct createProduct(String productNo) { //获取产品编号 char chr = productNo.charAt(0); //定义一个规范工厂类型的变量 StandardFactory factory = null; //提供产品编号,判断需要获取那个具体工厂对象 if(chr == '1'){ factory = new ProductFactoryA(); }else if(chr == '2'){ factory = new ProductFactoryB(); } if(factory != null){ return factory.createProduct(productNo); } return null; }}