您的位置:首页 > 其它

工厂模式

2017-10-25 19:42 225 查看

什么是工厂模式

使用一个工厂类来创建其他对象。
 

为什么要使用工厂模式

如果有一个类被很多类所依赖,则希望更换该类事会非常麻烦,需要从成百上千的类中修改代码,使用工厂模式则可以提供解耦。
 
所有的类不依赖具体实现,而依赖工厂和一个接口即可,需要对象时由工厂创建。
 
在需要更换实现时,只需要新类也实现了原定接口,则只需要修改工厂中的代码。不需要更改其他类。
 
实际上spring的IOC容器就可以理解为一个巨大的功能强大的工厂,他会负责所有spring
bean的创建与设置,负责管理他们的生命周期,而无需使用bean的类操心,提供依赖类和被依赖类的解耦。
 

简单工厂模式

工厂类负责生产所有产品实例,且由工厂负责生产哪个类的实例,工厂类负责所有的逻辑判断和实例创建工作
 
如果不想在工厂类中进行逻辑判断,可以为不同产品提供不同工厂,但是都实现同一工厂接口。
 
 

抽象工厂模式

使用工厂设计模式时,需要对象的类又与不同的工厂类产生了耦合,这就可以使用抽象工厂模式。
 
就是再添加一个工厂专门生产不同的工厂类。使代码只与抽象工厂与工厂接口相耦合。
 
抽象工厂模式特别适合于这样的一种产品结构:产品分为几个系列,在每个系列中,产品的布局都是类似的,在一个系列中某个位置的产品,在另一个系列中一定有一个对应的产品。这样的产品结构是存在的,这几个系列中同一位置的产品可能是互斥的,它们是针对不同客户的解决方案,每个客户都只选择其一。
 
可以认为spring IOC容器就是一个抽象工厂。
 

总结

不用过分纠结于简单工厂与抽象工厂,应该统称为工厂模式,如果直接生产被调用对象就是简单工厂,如果生产工厂对象,那就是抽象工厂模式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: