《设计模式》的前两章分别介绍设计模式的概要和一个应用实例。对于一个设计模式的初学者来讲,应该不大好理解。
我们直接进入具体的设计模式。本文从抽象工厂模式说起。
名称
在面向对象的世界里,名称具有很重要的含义。名称一旦明确了,职责和行为差不多也就定了;反之如果没有办法为一个类,方法命名,往往就是职责和行为不清晰。
认真考虑名称
具体到今天的题目抽象工厂,稍加扩展就是抽象的工厂类。在面向对象的领域中,抽象就意味着抽象类定义接口,具象类实现接口的同时还意味着对客户隐藏具体实现。就凭这几句话,大概可以的到下面的类图。
学习设计模式,一个难点就是记不住图,通过名称记忆(回想?猜想)就是一个方法。这就是名称的力量。
意图
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
在本系列文章中
蓝 {MOD}粗体就是《设计模式》中的原文,大师的话。我们当然应该认真解读。头半句说明可以创建的产品不止一个,而且相互有关系;后半句讲不用指定具体的类,是说得到的产品实际上是该产品类型的具象类的对象。我们可以将这段描述中的信息反应到类图中:
图中多出了两个产品继承和几根依赖线。关于这几根线说明了什么,为什么这么画,其实有它的必然性。大家可以先思考,我们下篇文章说明。
一句话总结
常问问为什么有好处。
觉得本文有帮助?请分享给更多人。
阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】