java常用设计模式的学习笔记(工厂模式)

it2024-01-06  63

java 常用设计模式——工厂模式(Factory pattern)

目录

java 常用设计模式——工厂模式(Factory pattern)一、工厂模式二、实现示例1.创建超类2.创建具体类3.创建工厂类4.主类实现 三、应用场景


一、工厂模式

首先,工厂模式也是一种创建型设计模式,是最常用的Java设计模式之一。在工厂模式下,客户端直接通过一个工厂类(示例中的MIUIFactory类)去使用自己所需求的对象及其方法,且不用管该对象的具体创建过程和其类的实现方法。该模式主要解决接口选择的问题。

举个例子:小米手机制造商是一个工厂类,它可生产的小米手机有小米9,小米10等型号,客户只需要根据需求从制造商购买手机,而不需要去知道它们是怎么被生产的。

二、实现示例

1.创建超类

代码如下:

public class MIUIPhone { // 手机型号 private String phoneModel; // 构造方法 public MIUIPhone(String phoneModel){ this.phoneModel=phoneModel; } // 显示手机型号 public void displayModel(){ System.out.println("MI model is "+phoneModel); } }

2.创建具体类

代码如下(MI9):

public class MI9 extends MIUIPhone { public MI9(String phoneModel) { super(phoneModel); } }

代码如下(MI10):

public class MI10 extends MIUIPhone { public MI10(String phoneModel) { super(phoneModel); } }

3.创建工厂类

代码如下:

public class MIUIFactory { //查看手机型号 public void getMIModel(String Model){ if(Model.equalsIgnoreCase("MI9")){ //查看小米9型号 new MI9(Model).displayModel(); }else if(Model.equalsIgnoreCase("MI10")){ // 查看小米10型号 new MI10(Model).displayModel(); } } }

4.主类实现

代码如下:

String model1="MI9"; String model2="MI10"; MIUIFactory miuiFactory=new MIUIFactory(); miuiFactory.getMIModel(model1); miuiFactory.getMIModel(model2);

三、应用场景

在了解使用场景前先来看看工厂模式的优点: (1)解耦:不需要创建和初始化对象,只去使用即可,这样也方便后期的更改和维护。 (2)降低了代码的重复性:在工厂类中创建好类后,可根据需求在多处使用,减少了创建对象代码的重复。 (3)可扩展性:如果需要一个新的类去实现新的需求,可以再增加一个具体实现类,然后再工厂类创建新的对象。 应用场景例如,日志记录器:可以根据将日志存到本地,远程服务器等。 数据库选用:我们可以设计一个工厂类来选择使用那种数据库。

最新回复(0)