美文网首页
简单工厂

简单工厂

作者: 南小夕 | 来源:发表于2019-04-24 16:49 被阅读0次

    一、前言

    在学习工厂模式之前,我们先来看一下简单工厂,简单工厂是创建型,但不属于GOF23种设计模式。

    二、定义

    由一个工厂对象决定创建出哪一种产品类的实例。

    三、适用场景

    工厂类负责创建的对象比较少,并且客户端(应用层)只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心。

    四、代码实战

    假如要录制课程视频,有Java视频、python视频等。

    首先先创建一个抽象的Video方法, 屏幕快照 2019-04-23 下午3.35.41.png 然后再创建录制java视频的类和录制python视频的类, 屏幕快照 2019-04-23 下午3.37.29.png
    屏幕快照 2019-04-23 下午3.37.37.png 然后再创建录制视频的工厂, 屏幕快照 2019-04-23 下午3.39.09.png 最后调用, 屏幕快照 2019-04-23 下午3.39.26.png
    这几个角色都很简单,主要有,一具体工厂VideoFsctory类,其实现了具体的业务逻辑,根据传进来的参数type,实现不同的业务;二抽象产品Video类,是所创建的产品的父类;三具体产品JavaVideo和PythonVideo类,为实现抽象产品的某个具体产品的对象。
    上述代码中我们在MainActivity中构造了一个工厂对象,传入“java”参数,并通过其生产了一个产品对象,这里我们得到的产品对象是JavaVideo的实例。这种方式需要哪一个产品就生产哪一个,也可以利用反射的方式更简洁地来生产具体产品对象,这里就不贴代码了。

    五、总结

    1、优点

    只需要传入一个正确的参数,就可以获取你所需要的对象,而无须知道其创建细节。

    2、缺点

    工厂类的职责相对过重,增加新的产品需要修改工厂类的判断逻辑,违背开闭原则。

    相关文章

      网友评论

          本文标题:简单工厂

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