工厂模式:
是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();
}
}