工厂模式
一、 简单工厂模式
以前,销售商需要什么(产品)对象就先创造什么工厂,自己创建工厂自己生产产品:
public class OldFactory {
public static void main(String[] args) {
XiaoMi9 xiaoMi9 = new XiaoMi9();
XiaoMi10 xiaoMi10 = new XiaoMi10();
}
}
class XiaoMi9{
public XiaoMi9(){
System.out.println("生成了一台小米9");
}
}
class XiaoMi10{
public XiaoMi10(){
System.out.println("生产了一台小米10");
}
}
为了降低耦合度,将生产商和销售商进行分离。当销售商提出要求时,将产品型号直接告诉生成商,生产商拿到设计图纸后生成出相应型号的产品交给生产商,销售商不知道产品的具体生产过程,他只负责销售啦。
public class SimpleFactory {
public static void main(String[] args) {
XiaoMiFactory factory = new XiaoMiFactory();
XiaoMi xiaoMi9 = factory.createXiaomi(9);
xiaoMi9.produce();
XiaoMi xiaoMi10 = factory.createXiaomi(10);
xiaoMi9.produce();
}
}
//抽象类(xiaomi设计图纸)
abstract class XiaoMi{
public abstract void produce();
}
//图纸的具体实现
class XiaoMi9 extends XiaoMi{
@Override
public void produce() {
System.out.println("生成出小米9");
}
}
class XiaoMi10 extends XiaoMi