java设计模式——工厂模式


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


/**
 * 作者: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");



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值