设计模式(二)工厂模式
我们在学习框架的过程中,遇到过很多Factory,例如sqlSessionFactory,beanFactory等等。具体来说这些都需要用到工厂模式,工厂模式是我们经常见到的一种设计模式。要理解工厂模式并不难。下面来讲一下具体的实现方式。
简单来说,工厂模式要对具有相似功能的方法抽象出一个抽象类,例如加减乘除,他们的大致功能是相同的,最大的不同可能就是结果的不同,因此我们抽象出获取结果的方法
对于不同的操作,根据实现功能的不同,创建子类分别继承此抽象类,重写该方法实现自己的功能
然后我们需要做的是创建工厂接口,根据不同的功能创建不同功能的实现类
调用过程:
简单来说就是根据具体需求来创建对应的实例类对象,这样做的好处是,当我们添加新的功能时,不用对原有的类做出改变,只需要新增实现抽象类的逻辑类,再增加对应的工厂类,看似罗嗦了一点,实际上对开发很有好处,假设我们需要实现许多很复杂的功能,这些功能有很多相同点,这就需要我们用到工厂模式,降低了代码之间的耦合度。用更专业的说法,遵循了软件设计的开闭原则。来自百科:
可扩展性和可复用性大大提高。拿Spring的BeanFactory来举例,在IOC容器中定义的bean的类型不同,这就需要根据不同类型的bean来创建工厂(列表形式的,还是可继承的等)