iOS 设计模式的应用 ⑤ 建造者模式

 我来答
梦之缘文化
2022-06-04 · TA获得超过1万个赞
知道大有可为答主
回答量:2332
采纳率:94%
帮助的人:147万
展开全部

    选择建造自己房子的人会把工程外包给承包商。单一承包商不能建造整个房子,他将其分解为几个部分,然后转包给几个实际的建筑商。客户告诉承包商房子里都有什么,然后承包商协调指导各房屋建筑商,决定需要做什么,应该如何建造。将建造过程分解为 客户-指导者(承包商)- 建造者(建筑商)的关系,过程更容易管理与复用,针对此类关系的设计模式称为 建造者模式

    有时,构建某些对象有多种不同方式,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。将一个复杂对象的构建与它的表现分离,使得同样的构建过程可以创建不同的表现。建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。

传统建造者模式有4个角色。

    以假想的游戏角色为例,假定有两个类型的角色——敌人和游戏者,角色具有共同的基本特征,如力量,耐力,智力、敏捷和攻击力。每一个特征都影响着角色的防御( protection )和攻击( Power )能力,因此我们定义一个角色类 Character :

    接着,我们定义抽象的角色构建者 CharacterBuilder :

     StandardCharacterBuilder 是具体的 CharacterBuilder 。在这里,力量和耐力与防御和攻击成正比,智力和敏捷与防御成正比,与攻击成反比。根据不同特征因子实际构建角色。构建过程结束后, StandardCharacterBuilder 将返回 Character 的实例。

接下来,定义指导者 ChasingGame 类,其提供了创建游戏者和敌人角色的方法。

最后,只需要通过 StandardCharacterBuilder 和 ChasingGame 就可以创建相应的游戏和敌人角色。

    建造者模式能帮助构建涉及部件与表现的各种组合的对象。没有这一模式,知道构建对象所需细节的 Director 可能最终会变成一个庞大的类,带有无数用于构建同一个类的各种表现的内嵌算法。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
享知信息
2024-03-18 广告
敏捷管理工具在现代企业中扮演着至关重要的角色。这些工具旨在提高团队的协作效率,确保项目能够按照预定的时间表和质量要求顺利进行。通过使用敏捷管理工具,团队成员可以更好地跟踪和管理工作任务,实时了解项目进度,及时发现并解决问题。此外,这些工具还... 点击进入详情页
本回答由享知信息提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式