Java 工厂模式

工厂模式:

        是Java中最常用的软件设计模式之一
        这种类型的设计模式【属于创建型模式】,它提供了一种创建对象的最佳方式
        我们之前创建类对象的时候,都是使用的new关键字的形式来创建的对象
        除了new对象之外,工厂模式也可以创建对象

耦合度:

        类与类之间的关系,如果关系比较器,紧密的话,就是高耦合,如果关系比较弱,松散的话,就是低耦合
        【开发中,一般要尽量低耦合】

---------------------------------------------------------------------------------------------------------------------------------

十个测试类,每个测试类中都要创建十个类对象
以前:直接在测试类中通过new的方式创建这10个类对象,那么这十个测试类和十个类 关系是非常紧密的

现在(工厂模式):定义一个类,专门用来创建十个类的对象,并提供获取的方法,那么这个时候测试类只需要跟工厂类关联,这就是  低耦合

工厂模式的作用:

          将前端的代码与要创建的对象分开,前端不需要直接创建对象,也就不需要关系关心创建对象时需要的数据,只需要通过工厂获取对象即可。      

代码演示:

        定义一个   汽车工厂    类

public class CarFactory {
    /*
    *   汽车工厂类
    * */

    /*
    *   catType:汽车的标识
    *       Baoma:代表需要创建一个Baoma对象
    *       Benchi:代表需要创建一个BenChi对象
    *       如果传入的车的标识不正确,代表前期工厂生成不了当前车对象,则返回null
    * */

    public Car createCar(String carType){
        if("baoma".equals(carType)){
            return new BaoMa();
        } else if ("benchi".equals(carType)){
            return new BenChi();
        } else {
            return null;
        }
    }
}

        定义一个   汽车   接口

public interface Car {
    public abstract void run();
}

        创建两个汽车类

public class BenChi implements Car {
    @Override
    public void run () {
        System.out.println("奔驰以30迈的速度行驶");
    }
}
public class BaoMa implements Car {

    @Override
    public void run () {
        System.out.println("宝马以20迈的速度行驶");
    }
}

        测试类

public class Test {   
    public static void main (String[] args) {
        // 创建宝马对象
        BaoMa baoMa = new BaoMa();
        // 创建奔驰
        BenChi benChi = new BenChi();
        baoMa.run();
        benChi.run();


        // 工厂模式
        CarFactory carFactory = new CarFactory();
        BenChi benchi = (BenChi) carFactory.createCar("benchi");
        benchi.run();
        Car baoma = carFactory.createCar("baoma");
        baoma.run();

    }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值