一、什么是简单工厂模式
采用工厂对象的方法统一生产不同的产品对象的实例。
二、场景分析
假设一个平台上有各种各样的学习视频,以java与python课程为例,写出下面业务代码:
上面这种写法就是一种很常规的写法,需要什么样课程的实例就new一个什么样的对象,上面这种模拟情况所有的类都在一个包中,对于导入包依赖的麻烦之处没有体现出来,但是此问题是存在的,如果我们将生产这些课程视频的任务全部交给一个工厂类来完成,只需要工厂类去依赖这些类,客户端只用和一个工厂类进行交互就可以了。下面我们采用简单工厂的方法对上面的代码进行重构:
上面主要构造了一个工厂类,由工厂类生产不同的视频对象。但是一旦增加视频对象,该工厂类就要被改写,这违背了开闭原则。如果我们采用反射的方式实现,这个工厂类就会显得更好一些: