希赛考试网
首页 > 软考 > 软件设计师

java简单工厂模式实例

希赛网 2024-06-15 14:20:55

简单工厂模式是一种创建型模式,它属于类的创建型模式。它提供了一种创建对象的最佳方式,该模式使用一个函数来生成新的对象,而不必将客户端代码与类的具体实现绑定在一起。这个函数就是简单工厂。Java作为一种面向对象的编程语言,也可以使用简单工厂模式。在本文中,我们将介绍Java简单工厂模式的实例,并从多个角度进行分析。

一、实例背景

假如我们现在有一家披萨店,它可以制作不同种类的披萨。不同种类的披萨拥有不同的配料和口味。为了将制作披萨的过程标准化,让披萨店的员工不需要知道制作每种披萨的配料和口味,我们可以使用简单工厂模式来实现。

二、实现过程

在这个实例中,我们需要创建三个类:Pizza、CheesePizza和PepperoniPizza。

Pizza类:

```

public abstract class Pizza {

public abstract void prepare();

public abstract void bake();

public abstract void cut();

public abstract void box();

}

```

CheesePizza类:

```

public class CheesePizza extends Pizza {

public void prepare(){

System.out.println("Preparing cheese pizza.");

}

public void bake(){

System.out.println("Baking cheese pizza.");

}

public void cut(){

System.out.println("Cutting cheese pizza.");

}

public void box(){

System.out.println("Boxing cheese pizza.");

}

}

```

PepperoniPizza类:

```

public class PepperoniPizza extends Pizza {

public void prepare(){

System.out.println("Preparing pepperoni pizza.");

}

public void bake(){

System.out.println("Baking pepperoni pizza.");

}

public void cut(){

System.out.println("Cutting pepperoni pizza.");

}

public void box(){

System.out.println("Boxing pepperoni pizza.");

}

}

```

我们还需要创建一个PizzaSimpleFactory类,用于创建不同种类的披萨:

```

public class PizzaSimpleFactory {

public Pizza createPizza(String type) {

Pizza pizza = null;

if (type.equals("cheese")){

pizza = new CheesePizza();

} else if (type.equals("pepperoni")){

pizza = new PepperoniPizza();

}

return pizza;

}

}

```

最后,我们可以在PizzaStore类中使用PizzaSimpleFactory类来制作不同种类的披萨:

```

public class PizzaStore {

private PizzaSimpleFactory factory;

public PizzaStore(PizzaSimpleFactory factory) {

this.factory = factory;

}

public Pizza orderPizza(String type) {

Pizza pizza = factory.createPizza(type);

pizza.prepare();

pizza.bake();

pizza.cut();

pizza.box();

return pizza;

}

}

```

三、实现分析

这个实例中,我们使用了简单工厂模式。Pizza类是一个抽象类,它定义了制作披萨的四个步骤:准备、烘烤、切片和装箱。CheesePizza和PepperoniPizza类是具体的披萨类,它们继承了Pizza类,并实现了抽象方法。PizzaSimpleFactory类是工厂类,它用于创建不同种类的披萨。PizzaStore类用于定制披萨,并使用PizzaSimpleFactory类创建实例。

这个实例中,简单工厂模式的优点在于它可以将客户端代码和具体实现分离,从而降低了程序的复杂度和耦合度。此外,它还可以增加代码的可维护性,因为你只需要修改工厂类中的代码,就可以更改生成对象的类。

同时,这个实例中也存在一些缺点。首先,工厂类的创建方法通常是静态的,这样会使得工厂类的可扩展性变得困难。其次,工厂类经常包含大量的if-else语句用于选择要创建的对象,这会增加代码的复杂度和维护难度。最后,它也会增加代码的运行时开销,因为每次调用工厂类都需要创建一个新的对象。

扫码咨询 领取资料


软考.png


软件设计师 资料下载
备考资料包大放送!涵盖报考指南、考情深度解析、知识点全面梳理、思维导图等,免费领取,助你备考无忧!
立即下载
软件设计师 历年真题
汇聚经典真题,展现考试脉络。精准覆盖考点,助您深入备考。细致解析,助您查漏补缺。
立即做题

软考资格查询系统

扫一扫,自助查询报考条件