?
可是即使这样,也有不尽如人意的地方,方便面有很多种做法,每个人的做法不尽相同,当然上面就只有几个因素。比如一个人喜欢先加油,再配料;另外一个人喜欢先配料,再加油。你可能会觉得不就是泡面嘛,讲究这么多干嘛。可是,严格的说,这些先后顺序是会影响我们的面的口感的。如果只是上面的两种先后顺序,可能你会说,简单工厂可以搞定,可是如果因素比较多了,并且我们无法事先把所有因素都放进简单工厂内,那么后面来了新的要求,我们就没有办法,需要更改简单工厂的代码了,这就违反了开闭原则。所以,使用工厂方法来解决这个问题。工厂方法的解决方案是下面这样。
加入还有一些人对红烧面有一些要求,新建工厂类,来生产符合这个要求的产品,这样的做法更加符合开闭原则。通过使用工厂方法,可以解决上述的问题。当然也许会有更好的解决方案,我说上述的例子,只是为了能够表示工厂模式的优势。