《设计模式》的前两章分别介绍设计模式的概要和一个应用实例。对于一个设计模式的初学者来讲,应该不大好理解。

我们直接进入具体的设计模式。本文从抽象工厂模式说起。

 

名称

 

在面向对象的世界里,名称具有很重要的含义。名称一旦明确了,职责和行为差不多也就定了;反之如果没有办法为一个类,方法命名,往往就是职责和行为不清晰。

 

认真考虑名称

 

具体到今天的题目抽象工厂,稍加扩展就是抽象的工厂类。在面向对象的领域中,抽象就意味着抽象类定义接口,具象类实现接口的同时还意味着对客户隐藏具体实现。就凭这几句话,大概可以的到下面的类图。

 

Aha!设计模式(2)-抽象工厂(1)_设计模

 

学习设计模式,一个难点就是记不住图,通过名称记忆(回想?猜想)就是一个方法。这就是名称的力量。

 

意图

 

提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

 

在本系列文章中蓝色粗体就是《设计模式》中的原文,大师的话。我们当然应该认真解读。头半句说明可以创建的产品不止一个,而且相互有关系;后半句讲不用指定具体的类,是说得到的产品实际上是该产品类型的具象类的对象。我们可以将这段描述中的信息反应到类图中:

 

Aha!设计模式(2)-抽象工厂(1)_类图_02

 

图中多出了两个产品继承和几根依赖线。关于这几根线说明了什么,为什么这么画,其实有它的必然性。大家可以先思考,我们下篇文章说明。

 

一句话总结

 

常问问为什么有好处。

 

觉得本文有帮助?请分享给更多人。

阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】

Aha!设计模式(2)-抽象工厂(1)_类图_03