问答题X 纠错阅读以下关于设计模式应用的叙述,根据要求回答问题。
[说明]
某软件公司承接了一项面向儿童的模拟游戏软件的开发任务,该游戏软件主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏软件需要模拟的鸭子种类及其特征如表2—13所示

表2—13鸭子种类及其特征
鸭子种类 发声特征 飞行特征 外观特征
灰鸭(MallardDuck) 发出“嘎嘎”声(Quack) 用翅膀飞行(FlyWithWings) 灰色羽毛
红头鸭(RedHeadDuck) 发出“嘎嘎”声(Quack) 用翅膀飞行(FlyWithWings) 灰色羽毛、头部红色
棉花鸭(CottonDuck) 不发声(QuackNoWay) 不能飞行(FlyNoWay) 白色
橡皮鸭(RubberDuck) 发出橡皮与空气摩擦的声音(Squeak) 不能飞行(FlyNoWay) 黑白橡皮颜色
为支持将来能够模拟更多种类鸭子的特征,该公司架构师采用某种设计模式设计的类图如图2-9所示。在图2—9中,类Duck描述了抽象的鸭子,方法fly()、quack()和display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;类FlyBehavior与QuackBehavior分别用于表示抽象的飞行行为与发声行为。


参考答案:依题意,在图2-9中,Duck为抽象类,描述了抽象的鸭子,方法fly()、quack()和display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;而类RubberDuck、MallardDuck、CottonDuck和RedHeadDuck分别描述具体的鸭子种类;类Fly Behavior与QuackBehavior为抽象类,分别用于表示抽象的飞行行为与发声行为;类Fly NoWav与Fly WithWings分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、Squeak与QuackNoWay分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为和不发声的行为。鉴于不同的鸭子种类只是在行为方面有所区别,且为支持将来能够模拟更多种类鸭子的特征,该公司架构师最有可能采用策略(Strategy)设计模式来设计如图2—9所示的模拟鸭子游戏软件。
Strategy模式定义了一组能够用来表示可能行为集合的类。这些行为可以在应用程序中使用,来修改应用程序功能。Strategy(策略)模式的设计意图是,定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换,使得算法可独立于使用它的客户而变化。具体而言,该模式是一种定义一系列算法的方法,从概念上看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合。Strategy模式的一般结构如图2—13所示。


Strategy模式具有以下一些优点和缺点。
(1)另一种子类化方法。Strategy类层次为Context(上下文)定义了一系列的可供重用的算法或行为。继承有助于析取出这些算法中的公共功能。可以直接生成一个Context类的子类,从而给它以不同的行为。但这会将行为强制编制到Context中,而将算法的实现与Context的实现混合起来,从而使Context难以理解、难以维护和难以扩展,而且还不能动态地改变算法。最后得到一堆相关的类,它们之间的唯一差别是它们所使用的算法或行为。将算法封装在独立的Strategy类中使得架构师可以独立于Context而改变它,使它易于切换、理解和扩展。
(2)在类自身中定义了每一个行为,从而减少了一些条件语句;Strategy模式提供了用条件语句选择所需行为以外的另一种选择。当不同的行为堆砌在一个类中时,很难避免使用条件语句来选择合适的行为。将行为封装在一个个独立的Strategy类中消除了这些条件语句。
(3)更容易扩展模型,即在不对应用程序进行代码修改的情况下,使该模式具有新的行为。
(4)客户必须了解不同的Strategy。该模式有一个潜在的缺点,就是一个客户要选择一个合适的Strategy就必须知道这些Strategy到底有何不同。此时可能不得不向客户暴露具体的实现问题。因此仅当这些不同行为变成与客户相关的行为时,才需要使用Strategy模式。
(5)Strategy和Context之间的通信开销。无论各个ConcreteStrategy(具体策略)实现的算法是简单还是复杂,它们都共享Strategy定义的接口。因此很可能某些ConcreteStrategy不会都用到所有通过这个接口传递给它们的信息;简单的ConcreteStrategy可能不使用其中的任何信息。这就意味着有时Context.会创建和初始化一些永远不会用到的参数。如果存在这样问题,那么将需要在Strategy和Context之间进行更加紧密的耦合。
(6)增加了对象的数目。Strategy增加了一个应用中的对象的数目。有时可以将Strategy实现为可供各Context共享的无状态的对象来减少这一开销。任何其余的状态都由Context维护。Context在每一次对Strategy对象的请求中都将这个状态传递过去。共享的Strategy不应在各次调用之间维护状态。
查答案就用赞题库小程序 还有拍照搜题 语音搜题 快来试试吧
无需下载 立即使用

你可能喜欢

问答题阅读以下关于UML软件系统建模的叙述,根据要求回答问题。
[说明]
车载GPS(Global Position System)终端是置于机动车内的实时定位装置,它的应用对象是需要定位和调度的车辆。车辆可以通过终端与GPS进行实时、准确的定位,并能够通过无线通信网络上报远程的车辆调度中心。中心可以通过终端远程监视车行轨迹,并可在特殊情况下通过终端控制车辆。同时,终端还装备车载电话,可以在出现特殊情况时及时地通知车辆调度中心。
图2—10所示为车载终端系统的用例图,对于车载GPS终端系统来说,主要的角色有两个,分别为车辆调度中心用户和车载终端用户。


图2—11所示为车载终端系统中的GSM无线电通信模块的部分状态图,用于与调度中心进行联系。GSM模块共有4个状态,分别为通话中、有问题、待命和短消息通信中。


[问题1]
请将以下给出的转换关系填入图1-24所示的适当位置,从而将GSM无线电通信模块状态图补充完整。转换关系:①用户需要语言通话;②通话完成;③重新连接网络;④未找到网络或网络出错。

参考答案:统一建模语言(UML)是面向对象的建模语言,强调两个重要的概念:鼓励将设计描述为许多交互的对象,而不是一些大的单块代码;...

问答题阅读以下软件架构设计的叙述,根据要求回答问题。
[说明]
某大型电子商务企业的主要业务之一是网上书城,其主要功能是通过Internet为用户提供各种图书信息的在线查询、浏览及订购相关图书等多种服务。PH软件公司承接了该大型网上书城系统的升级改造开发任务。该软件公司的领域专家对需求进行深入分析后,得到的部分系统需求如下。
(1)用户可能频繁地进行书目查询操作,网上书城需要返回众多符合条件的书目并且分页显示,而且可能每次查询的内容都不一样。
(2)网站管理员需要批量对相关书目信息进行修改,并且将更新信息记录到数据库。
(3)随着该网上书城知名度的不断提升,每天的业务量非常多,网站的用户访问量越来越大,因此对业务有持续性要求,且要求有限的资源更加合理地规划和使用。
(4)随着该企业业务规模的不断扩展,网上书城并购了多家其他同类的网上书城,需要将后台异构数据库系统进行整合。
该软件公司的系统架构师经过多方的研究和论证,集体提出了采用层次式架构风格设计该大型网上书城系统,包括表现层、业务逻辑层和数据访问层。

[问题1]
数据访问层负责与应用中的各种数据源打交道,并将它们整合起来,为业务逻辑层提供统一的数据服务。请对该大型网上书城的4个需求进行分析,结合你的系统架构经验,将表2—12中每个需求适合选用的数据访问模式及选择理由填充完整。
表2-12网上书城数据访问层设计
系统需求 数据访问模式 选择理由
(1) (2)
(3) (4)
(5) (6)
专用产品(如WebSphere Information Integration等) (7)

参考答案:在层次式架构风格中,数据访问层(数据持久层)主要负责和应用中的各种数据源(如DB2、Oracle等关系型数据源、XML数...

问答题阅读以下关于系统安全性和数据存储系统架构的叙述,根据要求回答问题。
[说明]
某市行政审批服务中心大楼内涉及几类网络,分别为因特网(Internet)、市电子政务专网、市电子政务外网、市行政审批服务中心大楼内局域网和各部门业务专网。行政审批服务中心网络建设工作组计划以市电子政务专网为基础,建设市级行政审批服务中心专网(骨干万兆、桌面千兆)。在大楼内部署5套独立链路,分别用于连接政务外网、政务专网、大楼内局域网、因特网和涉密部门内网。行政审批服务中心网络结构(部分)如图2—8所示。

[问题1]
在图2—8所示的数据交换区中,数据交换服务器通过双链路连接至交换机。在数据交换服务器业务的峰值时段,一条链路只能传送总业务量的90%,因而需要两条链路同时工作,才能完成数据交换服务器的全部传送请求。非峰值时段约占整个工作时间的60%,只需要一条链路工作就可以传送全部业务。假定每条链路的可用性为0.9,请计算这两条链路系统(数据交换区中虚线椭圆区域)的平均可用性(注:请简要列出计算过程)。

参考答案:可用性是指网络或网络设备(如服务器等)可用于执行预期任务时间所占总量的百分比。依题意,试题中只要求计算图2—8数据交换区...
赞题库

赞题库-搜题找答案

(已有500万+用户使用)


  • 历年真题

  • 章节练习

  • 每日一练

  • 高频考题

  • 错题收藏

  • 在线模考

  • 提分密卷

  • 模拟试题

无需下载 立即使用

版权所有©考试资料网(ppkao.com)All Rights Reserved