美文网首页
普通工厂模式

普通工厂模式

作者: OakesYa | 来源:发表于2020-04-27 11:08 被阅读0次

项目背景

项目需要输出UGC内容,包括了文章,视频,语音等内容,输出的操作都包含了查询数据,获取数据操作,所以可以使用工厂模式来控制到底操作的是文章,视频还是其他

什么是普通工厂模式

工厂模式是java中常见的设计模式,在工厂模式中,客户端不需要显式的创建对象,而可以通过调用接口传参创建或执行方法,对象的具体实现就可以对客户端透明,客户端只需要关心接口的调用即可。

如何使用

当前疫情期间学校采用了网上教学的方式,此时学生和老师登陆教学系统时会产生各式不同的操作。所以我们就简单用工厂模式实现一下

public interface SchoolPerson {
    /**
     * 登陆系统上课
     */
    void attendClass();
}

public class Student implements SchoolPerson {

    @Override
    public void attendClass() {
        System.out.println("打开书本");
        System.out.println("开始学习");
        System.out.println("------");
    }
}

public class Teacher implements SchoolPerson {

    @Override
    public void attendClass() {
        System.out.println("打开备案");
        System.out.println("开始教学");
        System.out.println("------");
    }
}

public class SchoolPersonFactory {
    
    public SchoolPerson getSchoolPerson(String name) {
        if (StringUtils.isEmpty(name)) {
            return null;
        }
        if ("student".equalsIgnoreCase(name)) {
            return new Student();
        } else if ("teacher".equalsIgnoreCase(name)) {
            return new Teacher();
        }
        return null;
    }
}

public class SchoolPersonTest {
    public static void main(String[] args) {
        SchoolPersonFactory schoolPersonFactory = new SchoolPersonFactory();      

        SchoolPerson studentOne = schoolPersonFactory .getSchoolPerson("student");
        studentOne.attendClass();

        SchoolPerson teacherOne = schoolPersonFactory .getSchoolPerson("teacher");
        teacherOne.attendClass();
    }
}

上面就是我们的简单代码,我们可以看下执行结果

Connected to the target VM, address: '127.0.0.1:55743', transport: 'socket'
打开书本
开始学习
------
打开备案
开始教学
------
Disconnected from the target VM, address: '127.0.0.1:55743', transport: 'socket'

Process finished with exit code 0

所以可以看到,对于学生和老师并不需要显示的创建自己的对象然后上课,而是可以直接通过传参调用接口的getSchoolPerson方法获取,这可以让调用方不用关心服务端的代码,但是工厂方法会增加类之间的耦合,需要依据实际情况使用。

相关文章

  • Java设计模式——Factory工厂模式

    Factory工厂模式分为:1)简单工厂模式(Simple Factory) --- 普通工厂模式2)工厂方法模式...

  • 设计模式-工厂方法模式

    1、工厂方法模式(Factory Method) 工厂方法模式分为三种: 普通工厂模式 多个工厂模式 静态工厂模式...

  • 普通工厂模式

    项目背景 项目需要输出UGC内容,包括了文章,视频,语音等内容,输出的操作都包含了查询数据,获取数据操作,所以可以...

  • 【C++】Geekband-设计模式

    工厂模式与普通该模式的比较 抽象工厂示例 Factory Method与Protopype Method 传统模式...

  • 五分钟精通设计模式(三)之工厂方法模式

    工厂方法模式分为三种: 普通工厂方法模式、多个工厂方法模式、静态工厂方法模式 废话不多说,下面直奔主题,实现步骤:...

  • 23种设计模式之五种创建型模式从概念介绍再到案例分析,不懂就从例

    一、创建型模式(Factory Method) 1.工厂模式 1.1普通工厂模式 就是建立一个工厂类,对实现了同一...

  • Java 设计模式1-简单工厂模式

    简单工厂模式不属于标准的Java 23设计模式之内。根据分类,简单工厂模式又分类为:1.普通简单工厂模式。2.多方...

  • 工厂模式

    首先,简单工厂模式不属于23中涉及模式,简单工厂一般分为:普通简单工厂、多方法简单工厂、静态方法简单工厂。 A、简...

  • java(设计模式)

    前言 设计模式-1设计模式-2 5种创建型模式 工厂方法模式 要构建的对象,实现相同的接口 普通工厂方法。只有一个...

  • 常用设计模式

    设计模式 工厂模式 工厂模式思路上分:简单工厂模式,工厂模式, 抽象工厂模式// 抽象工厂模式可以代替工厂模式,做...

网友评论

      本文标题:普通工厂模式

      本文链接:https://www.haomeiwen.com/subject/peoewhtx.html