简单工厂模式的优缺点
优点
简单工厂模式的核心是工厂类,其中包含了必要的判断逻辑,由此决定应该去创建哪个对象,客户端不用管理创建的具体逻辑,如果逻辑非常复杂,对于客户端来说更加方便简捷。
缺点
创建所有产品的逻辑都放在工厂类中,工厂需要知道每一种产品的创建过程,逻辑过于集中,添加新的产品生产逻辑时,势必会违反开闭原则,需要修改工厂类。
简单工厂模式代码
package com.example.designMode.simpleFactory;
/**
* @author youngli
* @date 2019/10/29 20:15
**/
public class SimpleFactoryMode {
public interface Car {
public void getTradeMark();
}
public static class AudiCar implements Car{
@Override
public void getTradeMark() {
System.out.println("经历了一个复杂的商标生产过程");
System.out.println("Audi");
}
}
public static class BenzCar implements Car{
@Override
public void getTradeMark() {
System.out.println("经历了一个复杂的商标生产过程")
System.out.println("Benz");
}
}
public static class LandRoverCar implements Car{
@Override
public void getTradeMark() {
System.out.println("经历了一个复杂的商标生产过程")
System.out.println("Land Rover");
}
}
/**
* 简单工厂
*/
public static class CarFactory{
public static Car getCar(String tradeMark) {
if ("Audi".equals(tradeMark)) {
return new AudiCar();
} else if ("Benz".equals(tradeMark)) {
return new BenzCar();
} else if ("LandRover".equals(tradeMark)) {
return new LandRoverCar();
}
return null;
}
}
public static void main(String[] args) {
String tradeMark = "Benz";
Car car = CarFactory.getCar(tradeMark);
car.getTradeMark();
}
}