设计模式习题

 

1、设计模式一般用来解决什么样的问题( a)
   A.同一问题的不同表相   B不同问题的同一表相
   C.不同问题的不同表相   D.以上都不是

2、下列属于面向对象基本原则的是( c )
   A.继承  B.封装 C.里氏代换  D都不是

3、Open-Close原则的含义是一个软件实体( a )
   A.应当对扩展开放,对修改关闭.
   B.应当对修改开放,对扩展关闭
   C.应当对继承开放,对修改关闭
   D.以上都不对

4、当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用( a )模式。
   A.创建型  B.结构型 C行为型 D.以上都可以

5、要依赖于抽象,不要依赖于具体。即针对接口编程,不要针对实现编程,是( d )的表述
   A.开-闭原则
   B.接口隔离原则
   C.里氏代换原则
    D.依赖倒转原则


6、依据设计模式思想,程序开发中应优先使用的是( a )关系实现复用。
    A,委派  B.继承 C创建   D.以上都不对
   复用方式:继承和组合聚合(组合委派)

7、设计模式的两大主题是( d )
   A.系统的维护与开发      B 对象组合与类的继承
   C.系统架构与系统开发    D.系统复用与系统扩展

8、单子模式中,两个基本要点( a b )和单子类自己提供单例
    A.构造函数私有   B.唯一实例
   C.静态工厂方法   D.以上都不对

9、下列模式中,属于行为模式的是( b )
   A.工厂模式  B观察者   C适配器 以上都是

10、“不要和陌生人说话” 是( d )原则的通俗表述
   A.接口隔离   B.里氏代换 C.依赖倒转  D.迪米特:一个对象应对其他对象尽可能少的了解

11、构造者的的退化模式是通过合并( c )角色完成退化的。
   A.抽象产品   B产品   C创建者    D使用者

12、单子(单例,单态)模式类图结构如下:

   下列论述中,关于”0..1”表述的不正确的是( d )
   A.1表示,一个单例类中,最多可以有一个实例.
   B.”0..1”表示单例类中有不多于一个的实例
   C.0表示单例类中可以没有任何实例
   D.0表示单例类可以提供其他非自身的实例

13、对象适配器模式是( a )原则的典型应用。
   A.合成聚合复用原则    B.里式代换原则
   C.依赖倒转原则       D.迪米特法则

14、静态工厂的核心角色是(a)
   A.抽象产品  B.具体产品   C.静态工厂   D.消费者

15、下列关于静态工厂与工厂方法表述错误的是:( a )
   A.两者都满足开闭原则:静态工厂以if else方式创建对象,增加需求的时候会修改源代码
   B.静态工厂对具体产品的创建类别和创建时机的判断是混和在一起的,这点在工厂方法中
   C.不能形成静态工厂的继承结构
   D.在工厂方法模式中,对于存在继承等级结构的产品树,产品的创建是通过相应等级结构的工厂创建的。

16、在观察者模式中,表述错误的是( c )
   A.观察者角色的更新是被动的。
   B.被观察者可以通知观察者进行更新
   C.观察者可以改变被观察者的状态,再由被观察者通知所有观察者依据被观察者的状态进行。
   D.以上表述全部错误。

17.对于违反里式代换原则的两个类,可以采用的候选解决方案错误的是:( d )
   A.创建一个新的抽象类C,作为两个具体类的超类,将A 和B 共同的行为移动到C 中,从而解决A和B 行为不完全一致的问题。
   B.将B到A的继承关系改组成委派关系。
   C.区分是“IS-a”还是”Has-a”。如果是“Is-a”,可以使用继承关系,如果是”Has-a”应该改成委派关系
   D.以上方案错误

18.对象组合的有点表述不当的是( d )
    A.容器类仅能通过被包含对象的接口来对其进行访问。
    B.“黑盒”复用,封装性好,因为被包含对象的内部细节对外是不可见。
    C.通过获取指向其它的具有相同类型的对象引用,
       可以在运行期间动态地定义(对象的)组合
   D.造成极其严重的依赖关系。

19.关于继承表述错误的是:( d )
   A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。
   B.泛化类(超类)可以显式地捕获那些公共的属性和方法。特殊类(子类)则通过附加属性和方法来进行实现的扩展。
   C.破坏了封装性,因为这会将父类的实现细节暴露给子类。
   D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类。

20.对于依赖倒转的表述错误的是( e )
   A.依赖于抽象而不依赖于具体,也就是针对接口编程。
   B.依赖倒转的接口并非语法意义上的接口,而是,一个类对其他对象进行调用时,所知道的方法集合。
   C.从选项B的角度论述,一个对象可以有多个接口。
   D.实现了同一接口的对象,可以在运行期间,顺利地进行替换。而且不必知道所示用的对象是那个实现类的实例。
   E.此题没有正确答案。

21.面向对象的六条基本原则包括:开闭原则,里式代换原则,合成聚合原则以及
       (依赖倒转),(迪米特法则),(单一原则),(接口隔离?)。

22.在存在继承关系的情况下,方法向(超类)方向集中,而数据向(子类)方向集中。

23.适配器模式,分为类的适配器和对象的适配器两种实现。
       其中类的适配器采用的是(继承)关系,而对象适配器采用的是(组合聚合)关系。

24.设计模式的基本要素有(名字 ),(意图 ),(问题 ),( 解决方案 ),(参与者与协作者 ),(实现),(一般性结构)。

25.创立型模式的根本意图是要把(对象的创建)和(使用分离)的责任进行分离,从而降低系统的(耦合度)。

26.工厂模式分为(简单工厂),(工厂方法),(抽象工厂)三种类型

27.门面模式是(迪米特)法则的典型运用

28.MVC模型的基本工作原理是基于(观察者)模式,实现是基于(命令)模式

29.设计模式的思想根源是(开闭)基本原则的宏观运用,本质上是没有任何模式的,
       发现模式的人永远是大师,而死守模式的人,最对只能是一个工匠.

 

 

转载于:https://www.cnblogs.com/WayneZeng/archive/2013/05/04/3059520.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433593.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

点云数据生成三维模型_可直接编辑的高质量3D生成模型:三维深度生成方法SDM-NET...

机器之心发布作者:赵悠悠中科院计算所、香港城市大学、英国卡迪夫大学以及加拿大西蒙弗雷泽大学的研究者,近日提出了一种能够表达几何细节和复杂拓扑结构的三维模型深度生成方法 SDM-NET,解决了之前方法的一部分局限性,使得生成的…

golang调用java的函数_大话golang性能分析(一):profile基本原理

引言:好久没分享了,不多废话了,准备一个专题分三期来分享下golang的性能分析。O 专题目标理解profile基本原理熟悉go常用性能分析工具pprof快速对线上服务的cpu、内存、goroutine的问题进行分析和排查对性能分析,golang是采取采样…

Boost智能指针——weak_ptr

循环引用&#xff1a; 引用计数是一种便利的内存管理机制&#xff0c;但它有一个很大的缺点&#xff0c;那就是不能管理循环引用的对象。一个简单的例子如下&#xff1a; #include<string> #include<iostream> #include<boost/shared_ptr.hpp> #include<b…

Linux下,C++编程论坛题目抽取

从一个论坛主页开始&#xff08;固定的一个&#xff0c;比如学校的论坛&#xff09;&#xff0c;输出各个&#xff08;不用全部&#xff09;板块下若干个主题帖子&#xff08;比如1000个&#xff09;的题目&#xff0c;按功能模块保存在txt文件中。 输入关键词&#xff0c;在上…

lisp eval apply_SICP远古魔法-LISP概览(1-2)

我们之所以能够像今天这样构建丰富多彩的应用是因为&#xff0c;我们有大系统中控制复杂度技术。实际上这种技术在其它领域早已存在。例如造火箭&#xff0c;盖房子。但是计算机科学又和他们不太一样&#xff0c;因为计算机科学处理的不是真实的情况&#xff0c;而是虚拟的。 例…

奥拉星插件flash下载手机版下载安装_终于等到你!安卓微信7.0.13内测版发布 支持夜间模式 附下载地址!...

3月22日&#xff0c;iOS版微信迎来了7.0.12正式版更新&#xff0c;最大的亮点在于为iOS13设备加入了“深色模式”功能&#xff0c;虽然没有独立的控制开关&#xff0c;但可以跟随系统开启或关闭夜间模式。此外&#xff0c;iOS版微信7.0.12还优化了语音消息的发送体验&#xff0…

boost::weak_ptr和enable_shared_from_this

boost::weak_ptr和enable_shared_from_this shared_ptr在我的实践中使用很广,在接口层面上,我基本都会默认的使用shared_ptr.而weak_ptr则很少使用;即便使用,也是间接的使用,例如使得class A继承自boost::enable_shared_from_this,这样A便具有了一个weak_ptr的成员对象,我便可以…

WebSite和Web Application\网站与Web项目的区别

简要记录下&#xff1a;1、web应用程序Default.aspx显示有两个原有文件及Default.aspx.cs和Default.aspx.designer.cs&#xff1b;1、Web网站Default.aspx显示有一个原有文件Default.aspx.cs。 2、web应用程序有重新生成和发布两项&#xff1b;Web网站只有一个发布网站。 3、we…

linux(centos7)安装jdk

一、下载jdk1.8压缩包 官网链接如下&#xff1a; jdk官网 用xftp直接传输文件&#xff0c; 把下载好的jdk压缩包上传到Linux的文件夹下去到我们存放软件的文件夹下面&#xff0c;将刚刚下载好的压缩包通过如下命令进行解压&#xff1a; tar -zxvf jdk-8u321-linux-x64.tar.g…

inner join 和join的区别_left join、right join和join ???

点击上方“JAVA”&#xff0c;星标公众号重磅干货&#xff0c;第一时间送达有个困扰 说到SQL&#xff0c;很多人可能用了挺久&#xff0c;但依然有个问题一直困扰着&#xff0c;那就是 left join、 join、 right join和 inner join等等各种 join的区别。网上搜&#xff0c;最常…

黑马程序员顺义校区php_黑马程序员:从PHP零基础到月薪11K为何送锦旗给班主任?...

2016年我在传智播客学习完PHP以后&#xff0c;特意给班主任王智慧老师送了一面锦旗。为什么我会送锦旗&#xff0c;那是因为从她当我们班主任开始&#xff0c;就非常的负责&#xff0c;对我们非常的好&#xff0c;这个可以随便问问班里的同学。而且我能找到高薪工作跟她对我的鼓…

C++中std::tr1::function和bind 组件的使用

在C的TR1中(Technology Report)中包含一个function模板类和bind模板函数&#xff0c;使用它们可以实现类似函数指针的功能&#xff0c;但却却比函数指针更加灵活&#xff0c;特别是函数指向类的非静态成员函数时。可以参考Scott Meyers. <<Effective C (3rd Edition)>…

linux(centos7)安装MySQL

一、删除MariaDB的文件 通过命令查询MariaDB&#xff1a;rpm -pa | grep mariadb 通过命令删除查找到的程序rpm -e 查找到的文件名 如果删除失败&#xff0c;就通过下面的命令强制删除&#xff1a;rpm -e --nodeps 查找到的文件名 二、安装MySQL 1、安装mysql repo源 …

python ddos攻击脚本_python版本DDOS攻击脚本

今天为了休息下&#xff0c;换换脑子&#xff0c;于是就找到了我之前收藏的一篇python的文章&#xff0c;是关于ddos攻击的一个脚本&#xff0c;正好今天有空&#xff0c;就实践下了。 附上源码pyDdos.py:#!/usr/bin/env python import socket import time import threading #P…

设计模式 - Command

意图&#xff1a;将一个请求封装为一个对象&#xff0c;从而使你可用不同的请求对客户进行参数化&#xff1b;对请求排队或记录请求日志&#xff0c;以及支持可撤消的操作。 class Receiver { public:Receiver(){}virtual ~Receiver(){}virtual void Action(){cout<<&quo…

代码中特殊的注释技术——TODO、FIXME和XXX的用处

前言&#xff1a;今天在阅读Qt Creator的源代码时&#xff0c;发现一些注释中有FIXME英文单词&#xff0c;用英文词典居然查不到其意义&#xff01;实际上&#xff0c;在阅读一些开源代码时&#xff0c;我们常会碰到诸如&#xff1a;TODO、FIXME和XXX的单词&#xff0c;它们是…

我有机器人合体成一个大力神_史上最菜大力神(三)——SS加强级高塔

史上最菜大力神&#xff08;三&#xff09;——SS加强级高塔​mp.weixin.qq.com上次开箱废渣和狂暴的时候&#xff0c;误把电影中出现的高塔当作废渣&#xff0c;犯下了一个不大不小的错误&#xff0c;如今真正的高塔终于来了。史上最菜大力神&#xff08;一&#xff09;——SS…

c语言判断闰年_C语言1博客作业06 - D丶千思

1.作业头实验作业输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意&#xff1a;闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。.1数据处理数据表达&#xff1a;采用整形定义变量Y(year)&#xff0c;M(month)&#x…

新版本idea的run/debug configuration

点击Edit Configuration点击modify options的下拉选项根据需要勾选相应的选项