2023-01-14 14:43:43 +08:00

1.9 KiB
Raw Permalink Blame History

title, date, author
title date author
设计模式 2023-01-03 10:11:47 文永达

设计模式

工厂模式

概述

该模式用来封装和管理类的创建,终极目的是为了解耦,实现创建者和调用者的分离。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

工厂模式可以细分为三种:

简单工厂模式

工厂方法模式

抽象工厂模式

传统模式

创建不同种类的pizza对象

	Pizza orderPizza(String type) {
		Pizza pizza;
		if(type.equals("chess"){
			pizza = new ChessPizza();
		}else if(type.equals("greek"){
			pizza = new GreekPizza();
		}else if(type.equals("apple"){
			pizza = new ApplePizza();
		}
		....
		//准备材料	
		pizza.prepare();
		//烘烤
		pizza.bake();
		//切
		pizza.cut();
		//装盒
		pizza.box();
		return pizza;
	}

简单工厂模式

在传统模式中直接让调用者去创建对象。但是,假如创建对象的过程比较复杂,我们可以将其交由一个新的类来创建,这种类叫工厂类,调用者只需要调用这个类的函数来创建对象就行了,无需再书写创建对象。

public class SimpleFactory {
 
    public static Pizza createPizza(String pizzaType){
        Pizza pizza = null;
        System.out.println("使用了简单工厂模式");
        if (pizzaType.equals("greek")) {
            pizza = new GreekPizza();
            pizza.setName("greek");
        } else if (pizzaType.equals("chess")) {
            pizza = new ChessPizza();
            pizza.setName("chess");
        } else if (pizzaType.equals("pepper")) {//新增PepperPizza的时候 修改了源代码 违反了ocp原则 如果新增10000个
            //那就很麻烦了
            pizza = new PepperPizza();
            pizza.setName("pepper");
        }
 
        return pizza;
    }
}