对工厂模式的理解

前言

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

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

工厂做什么?

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

为什么要使用工厂模式?

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

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

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

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

总结

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

更多

在网上搜工厂模式,看到几个变种:简单工厂模式、工厂方法模式、抽象工厂。简单看了下,不甚理解。
遇到问题,用某个模式解决该问题,才能更好的理解该模式。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值