结构型设计模式练习A解析.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、选择题 1.组合模式描述了如何将容器对象和叶子对象进行(A)组合,使得用户在使用时无须对它们进行区分,可以一致地对待容器对象和叶子对象 A 递归 B 重构 C 并列 D 内置 E 关联 2.组合模式包含角色有(ABCD) A 抽象构件 B 叶子构件 C 容器构件 D 客户类 E 树根构 F 枝干构件 3.以下不适合使用装饰模式的是(A) A 装饰某个对象时需要修改该类的对象 B在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责 C 需要动态地给一个对象增加功能,这些功能也可以动态地被撤销 D当不能采用继承的方式对系统进行扩充或者采用继承不利于系统扩展和维护时 E 只需要对某个对象进行外观修饰而不需要修改其内在属性时 4.装饰模式的优点有哪些(ABC) A 可以通过一种动态的方式来扩展一个对象的功能,通过配置文件可以在运行时选择不同的装饰器,从而实现不同的行为 B可以使用多个具体装饰类来装饰同一对象,得到功能更为强大的对象 C具体构件类与具体装饰类可以独立变化,用户可以根据需要增加新的具体构件类 和具体装饰类,在使用时再对其进行组合,原有代码无须改变,符合“开闭原则” D使用装饰模式进行系统设计时将产生很多小对象 E装饰模式比继承更加易于出错,排错也很困难,对于多次装饰的对象,调试时寻找错误可能需要逐级排查,较为烦琐。 11. 对象组合的有点表述不当的是( )A. 容器类仅能通过被包含对象的接口来对其进行访问。B. “黑盒”复用,封装性好,因为被包含对象的内部细节对外是不可见。C. 通过获取指向其它的具有相同类型的对象引用,可以在运行期间动态地定义(对象的)组合D.造成极其严重的依赖关系。(T) 6.类适配器使用多重继承对一个接口与另一个接口进行匹配。(T) 三、填空题 1.门面模式是(迪米特)法则的典型运用3.适配器模式,分为类的适配器和对象的适配器两种实现。其中类的适配器采用的是(继承)关系,而对象适配器采用的是(组合聚合)关系。 图4分,要画出基类与子类之间的继承关系(1分),递归的组合关系(2分),层次结构(1分)。 2.某公司要开发一个文档编辑器,其中用户界面部分的要求如下:除了显示文档内容的窗口外,还要用滚动条让用户能看到同一页的不同部分,并且滚动条可以根据用户的需要在运行时增加或去除,请你设计一种方案,画出类关系图,并给出理由。 答:采用装饰者模式。 3分 图3分 这种模式比静态继承更加灵活,可以在不影响其他对象的情况下,在运行时增加和删除功能,如果需要增加功能,则创建一个新的子类。 4分 如果选用其他模式,也可适当给分。 Client reports Supervisor add(Employee) Employee stateName() 1..n Setup Clerk stateName() President stateName() Teller stateName() Manager stateName() Draw( ) ScrollTo( ) ScrollDecorator Draw( ) Decorator Draw( ) TextView Draw( ) VisualComponent

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档