工厂模式的优点
设计模式---工厂模式——总结 1、接下来看spring beanfactory,这是非常有名的工具,我们知道spring容器是一个控制反转,主要作用是生成bean,管理bean,从工厂模式来看,spring beanfactory就是生产bean,然后提供给客户端。 2、来看一下bean实例化的过程:调用bena的默认构造方式生成bean的实例,暂称为instance1,如果在bean配置文件中注入了bean的属性,则在instance1基础上进行属性注入形成instance2,这种注入是覆盖性的,如果bean实现了InitializingBean接口,则调用afterPropertiesSet()方法,来改变或者操作instance2,得到instance3。其中:InitializingBean是spring提供的一个初始化bean的类,如果实现了这个类,则必须实现afterPropertiesSet()方法,接下来,如果bean的配置文件中指定了inti-method="init"属性,又会调用一个初始化方法,则在instance3的基础上又会进行一些改变,编程instance4.
实例 instance
工厂模式的应用:jdbc
工厂模式总结 适用于哪些场景
工厂方法 vs 抽象工厂
@设计模式---工厂模式的总结
一、工厂方法模式和抽象工厂模式的对比:
1.工厂模式是一种极端情况下的抽象工厂模式,通过前面的类图和代码实现我们可以看到这样一个对比,而抽象工厂模式可以看成是工厂模式的推广,
2.工厂模式用来创建一个产品的等级结构,而抽象工厂模式是用来创建多个产品的等级结构,
3.工厂模式只有一个抽象产品类,而抽象工厂模式有多个抽象产品类,总之就是单一对多个产品的这种对比。
二、工厂模式帮助我们实现了什么呢?
1.系统可以在不修改具体工厂角色的情况下引进新的产品,
2.客户端不必关系对象如何去创建,明确了职责,对象具体的创建交给了具体的产品,product1,product2,客户端只要告诉工厂我需要哪一,product1还是product2,它们具体是怎么创建的,怎么组合的,都交给了具体的产品product1,product2
3.更好的理解面向对象的原则,面向接口编程,而不是面向实现编程。
那我们整体的工厂模式就是这样一个原则。
三、工厂模式适用于哪些场景呢?
1.一个系统应当不依赖于产品类实例被创立,组成和表示的细节,就是说这个产品如何被创建,组成和表现,我们都归结到具体的产品是如何实现上去了,与前端的client,和中端的factory都是没有关系的,
2.这个系统的产品至少有一个产品族,工厂方法模式就是一个产品族,它是最简单的一个等级,
3.同属于同一个产品族的产品是设计成在一起使用的,这是毋庸置疑的,同属于一个系列的产品,就是在一起的,
4.不同的产品以一系列的接口的面貌出现,从未使系统不依赖于接口实现的细节,我们都是面向接口编程的,不是面向实现编程的,