工厂模式

为什么要叫工厂模式呢?就是为了生产对象!一个对象的创建过程比较复杂的时候,就可以使用工厂模式来创建对象。

工厂不是new一个对象,而是创建对象的过程,比方说new这个对象之前有100多行的准备工作,比较复杂,就可以交给工厂来做。

Springcore的核心就是工厂模式,隐藏了创建对象的过程

SpringAOP的核心设计模式是代理模式

SpringMVC的核心设计模式是观察者模式

问题:有了factoryMethod为什么还要abstractFactory?

我的答案:在factoryMethod当中,工厂中除了有生产对象的工厂方法外还有自己的业务逻辑,扩展的方式只能是通过继承该类来扩展,而在abstractFactory当中,将该工厂方法抽象出一个接口,包含有生产对象的工厂方法,将自己的业务逻辑剔除出去放到一个调用的A类当中,这样做的好处是避免了通过继承来扩展工厂方法,而是采用聚合的方式来实现。

其实就是将AB两个类拆成了AIB三个,不在使用继承的方式,而是采用聚合的方式。

简单工厂:其实不算是一种设计模式,所以更应该说工厂模式有两种,即以下两种。

工厂方法(factoryMethod):

抽象工厂(abstractFactory):

One uses inheritance and one uses composition.

One

creates only one product and the other creates a family of products.

One makes

use of the concrete types the subclasses create and the other's methods are

purely implemented to create products.


工厂模式_第1张图片

你可能感兴趣的:(工厂模式)