您的位置:首页 > 其它

对工厂模式的理解

2015-09-27 18:20 169 查看

前言

最近在看一本Head First系列的书,讲设计模式的。先后看了“观察者模式”和“工厂模式”。

目前,趁着业务代码迁移,已经用观察者模式重构了业务的核心部分。至于工厂模式,一直在用,但对于工厂模式是什么,还需理一理。

工厂做什么?

很明显,工厂用来制造产品。例如,鞋厂的产品是鞋子,汽车厂的产品是汽车。从面向对象的角度讲,工厂负责生产“对象”。

为什么要使用工厂模式?

从工厂做什么可以看出,工厂可以有很多客户。例如鞋厂,可以生产运动鞋、皮鞋、户外鞋等等,不同的客户需要不同的鞋子。对于客户来说,他们只关心工厂能不能生产自己想要的产品,至于工厂的其它产品,他们不需要知道。

再回到面向对象,举个例子,有个生成缓存服务的工厂,它可以生成数据库缓存服务和动态数据缓存服务。这些缓存服务都有共同的接口供客户调用,如set,get等等。

客户A需要缓存数据库记录,这通常是Memcached。客户B需要缓存动态数据,通常需要Redis这种可以持久化,更可靠的缓存服务。

A告诉工厂:给我来个数据库缓存,B告诉工厂:给我来个动态数据缓存。客户只关心产品是否可用,性能是否达到要求,至于生产细节,那就是工厂的事了。

总结

工厂模式分离了生产方和使用方,减轻了使用方负担。

更多

在网上搜工厂模式,看到几个变种:简单工厂模式、工厂方法模式、抽象工厂。简单看了下,不甚理解。
遇到问题,用某个模式解决该问题,才能更好的理解该模式。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: