工厂模式介绍
1.工厂模式?
工厂设计模式是最常见的设计模式之一,在工厂模式中,提供一种最佳的创建对象的方式,最大程度的实现代码的解耦。
工厂模式的优缺点:
优点:
高度解耦,不需要再去new对象;
扩展性高:当你想增加一个产品,只需要扩展工厂类,并增加一个产品即可;
使用简单:屏蔽了产品的具体实现,使用者只用关注产品的接口即可;
缺点:
每次增加一个产品的时候都需要新增一个实现类,这样下来类的数量不断增加,增加了系统复杂度;
2.工厂模式的简单实现:
1.一个接口:
public interface Car {
void run();
}
2.接口的实现类对象:
实现类1:
public class Benz implements Car {
@Override
public void run() {
System.out.println("我买了一辆奔驰,贼高端!!!");
}
}
实现类2:
public class Ferrari implements Car {
@Override
public void run() {
System.out.println("我买了一辆法拉利, 跑的贼快!!!");
}
}
3.工厂类:
public class CarFactory {
//对外提供方法,便于外界获取实例对象
public Car getInstance(String brand) {
if (brand == null) {
return null;
}
if ("Ferrari".equals(brand)) {
return new Ferrari();
} else if ("Benz".equals(brand)) {
return new Benz();
}
return null;
}
}
4.测试:
public class CarTest {
public static void main(String[] args) {
//创建工厂对象
CarFactory carFactory = new CarFactory();
//获取对象
Car benz = carFactory.getInstance("Benz");
benz.run();
}
}