简单工厂
2019-04-24 本文已影响0人
南小夕
一、前言
在学习工厂模式之前,我们先来看一下简单工厂,简单工厂是创建型,但不属于GOF23种设计模式。
二、定义
由一个工厂对象决定创建出哪一种产品类的实例。
三、适用场景
工厂类负责创建的对象比较少,并且客户端(应用层)只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心。
四、代码实战
假如要录制课程视频,有Java视频、python视频等。
屏幕快照 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、缺点
工厂类的职责相对过重,增加新的产品需要修改工厂类的判断逻辑,违背开闭原则。