工厂模式

来源:互联网 发布:晋城行知教育怎么样 编辑:程序博客网 时间:2024/06/06 04:25

什么是工厂模式

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

 

为什么要使用工厂模式

如果有一个类被很多类所依赖,则希望更换该类事会非常麻烦,需要从成百上千的类中修改代码,使用工厂模式则可以提供解耦。

 

所有的类不依赖具体实现,而依赖工厂和一个接口即可,需要对象时由工厂创建。

 

在需要更换实现时,只需要新类也实现了原定接口,则只需要修改工厂中的代码。不需要更改其他类。

 

实际上springIOC容器就可以理解为一个巨大的功能强大的工厂,他会负责所有spring bean的创建与设置,负责管理他们的生命周期,而无需使用bean的类操心,提供依赖类和被依赖类的解耦。

 

简单工厂模式

工厂类负责生产所有产品实例,且由工厂负责生产哪个类的实例,工厂类负责所有的逻辑判断和实例创建工作

 

如果不想在工厂类中进行逻辑判断,可以为不同产品提供不同工厂,但是都实现同一工厂接口。

 

 

抽象工厂模式

使用工厂设计模式时,需要对象的类又与不同的工厂类产生了耦合,这就可以使用抽象工厂模式。

 

就是再添加一个工厂专门生产不同的工厂类。使代码只与抽象工厂与工厂接口相耦合。

 

抽象工厂模式特别适合于这样的一种产品结构:产品分为几个系列,在每个系列中,产品的布局都是类似的,在一个系列中某个位置的产品,在另一个系列中一定有一个对应的产品。这样的产品结构是存在的,这几个系列中同一位置的产品可能是互斥的,它们是针对不同客户的解决方案,每个客户都只选择其一。

 

可以认为spring IOC容器就是一个抽象工厂。

 

总结

不用过分纠结于简单工厂与抽象工厂,应该统称为工厂模式,如果直接生产被调用对象就是简单工厂,如果生产工厂对象,那就是抽象工厂模式

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 空调滴水管断了怎么办 地漏下水管断了怎么办 脸上长白色糠疹怎么办 腋下长白色的毛怎么办 饥荒电羊死光了怎么办 6s储存空间虚满怎么办 大胸下垂穿婚纱怎么办 美团签约成功后怎么办 拍婚纱照笑不出来怎么办 长得丑拍婚纱照怎么办 失恋了怎么办才能最快走出来 眼镜大了往下掉怎么办 眼镜带着往下掉怎么办 眼镜腿松了怎么办妙招 眼镜框大了总掉怎么办 吃不下饭恶心想吐怎么办 买到苹果翻新机怎么办 欠装修款不给怎么办 老板欠工资跑了怎么办 挖机老板欠工资怎么办 欠工程款耍赖不给怎么办 辞工后不给工资怎么办 工伤仲裁后不给怎么办 离职后不给工资怎么办 离职了不发工资怎么办 饭店欠工资不给怎么办 单位欠工资不给怎么办 离职后工资不发怎么办 暑假工不给工资怎么办 暑假工工资不发怎么办 个人欠钱2万不还怎么办 快递发错地址了怎么办 香烟被快递扣了怎么办 买st股票退市了怎么办 av淘宝看不了了,怎么办 厨房通水道堵了怎么办 皮鞋大了不跟脚怎么办 敞口皮鞋穿大了怎么办 穿皮鞋老掉跟怎么办 皮鞋鞋垫不粘了怎么办 上海拍好车牌后怎么办