设计模式之简单工厂模式

工厂模式实现了创建者和调用者的分离。创建对象的时候不去关心对象的具体实现。只需要调用生产相关对象的工厂里的方法去得到就可以了,工厂模式具有很高的可扩展性和可维护性。

实现

工厂模式的实现首先需要我们要创建的对象去实现一个共同的接口。比如说,我们需要宝马,奔驰汽车,那么闲定义一个Car接口:

package pattern;

public interface Car {
    public void Band();
}

然后让我们需要创建的对象的类去实现这个接口:

package pattern;

public class BMW implements Car{

    @Override
    public void Band() {
        // TODO Auto-generated method stub
        System.out.println("This is BMW");
    }

}


package pattern;

public class Benz implements Car{

    @Override
    public void Band() {
        // TODO Auto-generated method stub
        System.out.println("This is Benz");
    }

}

再然后,创建一个根据相应信息返回对应的对象的工厂类

package pattern;

public class CarFactory {
    public Car getCar(String band){
        if("BMW".equals(band)){
            return new BMW();
        }else if("Benz".equals(band)){
            return new Benz();
        }else
        return null;
    }
}

最后我们如果需要相应品牌的汽车,就不用去和具体的实现类打交道,只需要将我们的要求告诉工厂就可以了:

package pattern;

public class Test {
    public static void main(String[] args) {
        //创建一个汽车工厂
        CarFactory cfactory = new CarFactory();
        Car car1 = cfactory.getCar("BMW");
        Car car2 = cfactory.getCar("Benz");
        car1.Band();
        car2.Band();
    }
}

执行结果:
This is BMW
This is Benz

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值