欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-01-23 18:21:40
...

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


一、工厂模式

首先,工厂模式也是一种创建型设计模式,是最常用的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)可扩展性:如果需要一个新的类去实现新的需求,可以再增加一个具体实现类,然后再工厂类创建新的对象。
应用场景例如,日志记录器:可以根据将日志存到本地,远程服务器等。
数据库选用:我们可以设计一个工厂类来选择使用那种数据库。