网站建设 统一质量标准/温州seo网站建设
“我一路向北,离开有你的季节;你说你好累,已无法再爱上谁”🌹
工厂模式
的原则就是:
使用工厂来生产对象,生产对象的时候只需要和工厂打交道就可以了,不需要和具体的类进行耦合,达到解耦
的目的。
spring
中有两大特性,IOC
和AOP
。都知道吧?IOC
就是基于工厂模式实现的。
spring
中,对象的创建就是通过BeanFactory
和 ApplicationContext
完成的
工厂模式具体涉及到三个类:
抽象产品类
:定义了产品的规范,描述了产品的主要特性和功能。
具体产品类
:实现或者继承抽象产品的子类。
工厂类
:提供了创建产品的方法,调用者通过该方法来创建产品。
先来一个买汽车的案例。
抽象产品类:
package com.app.simple_facrory;public abstract class Car {public abstract String getName();
}
具体产品类:
package com.app.simple_facrory;public class BWMCar extends Car {@Overridepublic String getName() {return "宝马汽车";}
}
package com.app.simple_facrory;public class BenchiCar extends Car {@Overridepublic String getName() {return "奔驰汽车";}
}
package com.app.simple_facrory;public class AodiCar extends Car{@Overridepublic String getName() {return "奥迪汽车";}
}
工厂类:造汽车的
package com.app.simple_facrory;public class SimpleCarFactory {public Car produceCar(String carName){Car car = null;if ("宝马汽车".equals(carName)){car = new BWMCar();}else if ("奔驰汽车".equals(carName)){car = new BenchiCar();}else if ("奥迪汽车".equals(carName)){car = new AodiCar();}else {System.out.println("没有您想要购买的汽车~");}return car;}
}
4S店: 其实就是4S店去生产汽车的地方运汽车过来然后向客户卖出去
package com.app.simple_facrory;public class BuyCar {public Car produce(String CarName){SimpleCarFactory simpleCarFactory = new SimpleCarFactory();Car car = simpleCarFactory.produceCar(CarName);return car;}
}
客户端:(你去4S店里买汽车,然后4s店告诉汽车工厂生产什么样的汽车)
package com.app.simple_facrory;public class CarClient {public static void main(String[] args) {BuyCar fourS = new BuyCar();Car car = fourS.produce("宝马汽车");String carName = car.getName();System.out.println(carName);}
}
说实话,其实我最喜欢的还是奥迪
。哈哈哈哈哈哈哈哈哈哈哈