学好设计模式对程序员来说非常重要,设计模式与程序员的架构能力和阅读源代码的能力息息相关,设计模式一共有23种,先介绍一下工厂模式
一.工厂模式:简单工厂模式
工厂方法模式
抽象工厂模式
1.简单工厂:举个例子,构建对象最常用的就是new一个对象,当我们需要一个键盘时,我们需要键盘的构造方法,需要一个鼠标时我们需要知道鼠标的构造方法,然而当我们需要的更多时,只是增加了相关的类,增加了类之间的关系,程序耦合程度很高,但是这时有一个电脑硬件制作厂,我们只需要把我们需要的告诉工厂,工厂负责制造加工就可以,只用和工厂打交道。这种情况下降低了系统耦合度,当制作键盘时我们不需要关心需要什么零部件,键帽等,这些都是工厂考虑的事情。但是也会有弊端:(1)当工厂生产产品过多,每个产品的修改都要来修改工厂,不止一个类引起工厂变动,这违背了单一职责原则。(2)每成产一个新产品,工厂类增加一个分支,违背了开闭原则。接着诞生了工厂方法模式。
2.工厂方法模式:当我们需要键盘时,就增加一个键盘制作厂,当需要鼠标时,增加一个鼠标制作厂。这样降低了耦合度,只用和各自工厂类打交道,它改善了简单工厂的弊端,当键盘生产过程需要修改只用改键盘制作厂类,鼠标需要修改,则只用改动鼠标制作厂,符合单一原则。需要增加新的产品只用增加新的工厂类就可以,不用修改原有代码,符合开闭原则。
3.抽象工厂模式:这个模式更加神奇,需要将键盘制造厂,鼠标制造厂抽象为两个接口,调用接口中的方法,抽象工厂中还有反射,配置文件这个具体是啥?