java设计模式——工厂模式

来源:互联网 发布:淘宝开店身份证查询 编辑:程序博客网 时间:2024/05/03 02:41

        工厂 顾名思义 制造东西的地方,而我们的工厂模式也是用来创建对象的。定义一个创建对象的接口,让子其类来决定创建那个对象。工厂模式的现实中的使用,一般是当我们有很多相似的需求的时候,通过抽象公共部分来实现高效的编码。

/** * 作者:chs on 2016/3/7 14:12 * 邮箱:657083984@qq.com * 抽象的工厂 */public interface Factory {    /**     * 根据材料来创建产品     * @param material     */    public abstract Product createProtect(String material);}

package com.chs.myfactory;/** * 作者:chs on 2016/3/7 14:34 * 邮箱:657083984@qq.com * 产品 */public abstract class Product {  protected  String name;}

package com.chs.myfactory;/** * 作者:chs on 2016/3/7 15:26 * 邮箱:657083984@qq.com */public class Product1 extends Product {    private String name;    public Product1() {        this.name = "我是第一种产品";    }}
package com.chs.myfactory;/** * 作者:chs on 2016/3/7 15:26 * 邮箱:657083984@qq.com */public class Product2 extends Product {    private String name;    public Product2() {        this.name = "我是第二种产品";    }}
根据传入值来确定创建哪个子类的对象。
package com.chs.myfactory;/** * 作者:chs on 2016/3/7 15:19 * 邮箱:657083984@qq.com */public class MyFactory implements Factory {    private static MyFactory instance;    private MyFactory(){}    public static MyFactory getInstance(){        if(instance==null){            synchronized (MyFactory.class){                if(instance==null){                    return new MyFactory();                }            }        }        return instance;    }    @Override    public Product createProtect(String material) {        Product product = null;        if(material.equals("1")){            product = new Product1();        }else {            product = new Product2();        }        return product;    }}

MyFactory.getInstance().createProtect("1");



0 0