1 - 什么是工厂方法模式?
前一篇文章讲述了在使用简单工厂模式的时候,有一个明显的缺陷,就是我们添加一款新的LCD控制器的时候,需要修改工厂类的构造函数(因为只有一家工厂),在switch-case里面新增一个条件项,违背了面向对象设计的“开闭原则”。
为了解决这个问题,可以使用工厂方法模式(Factory Method Pattern)。
举一个通俗的例子,假设你是一家电器工厂的CEO,以前是同一家工厂(简单工厂模式),根据季节的不同(switch-case),来生产不同的电器(空调或者电暖炉)。因为你之前赚翻了,现在干脆建了两家工厂,一家工厂生产空调,一家工厂生产电暖炉,两家工厂各产各的,互相独立运作。
相比起简单工厂模式,工厂方法模式是把工厂类抽象出来。比如,针对两款LCD,需要生产哪一款,就再建一