《设计模式与软件体系结构 知到智慧树网课答案》由会员分享,可在线阅读,更多相关《设计模式与软件体系结构 知到智慧树网课答案(19页珍藏版)》请在金锄头文库上搜索。
1、 设计模式与软件体系结构-知到答案、智慧树答案第一章单元测试1、问题:以下对开闭原则的描述错误的是()。选项:A:从抽象层导出一个或多个新的具体类可以改变系统的行为,是其原则之一B:开闭原则与“对可变形的封装原则”没有相似性C:对修改关闭,是其原则之一D:找到一个系统的可变元素,将它封装起来,叫开闭原则答案:【开闭原则与“对可变形的封装原则”没有相似性】2、问题:常用的基本设计模式可分为()。选项:A:过程型、结构型和行为型B:创建型、结构型和行为型C:对象型、结构型和行为型D:抽象型、接口型和实现型答案:【创建型、结构型和行为型】3、问题:对违反里氏替换原则的两个类,可以采用的候选解决方案正
2、确的是()。选项:A:将B到A的继承关系改成组合关系。B:创建一个新的抽象类C,作为两个具体类的超类,将A和B共同的行为移动到C中,从而解决A和B行为不完全一致的问题。C:区分是“is-a”还是“has-a”。如果是“is-a”,可以使用继承关系,如果是“has-a”应该改成组合关系。D:尽量将一些需要扩展的类或者存在变化的类设计为抽象类或者接口,并将其作为基类,在程序中尽量使用基类对象进行编程。答案:【尽量将一些需要扩展的类或者存在变化的类设计为抽象类或者接口,并将其作为基类,在程序中尽量使用基类对象进行编程。 】4、问题:下列属于面向对象基本原则的是()。选项:A:里氏替换B:继承C:子类
3、复用D:封装答案:【里氏替换】5、问题:软件设计模式的最关键的元素包括()。选项:A:问题B:名称C:参与者和协作者D:解决方案答案:【问题;名称;参与者和协作者;解决方案】6、问题:常用的描述设计模式的格式有()。选项:A:意图 B:适用性C:动机D:结构答案:【意图;适用性;动机;结构】7、问题:“不要和陌生人说话”是迪米特原则的通俗表述。选项:A:对B:错答案:【对】8、问题:依据设计模式思想,程序开发中应优先使用的是创建。选项:A:错B:对答案:【错】9、问题:设计模式一般用来解决同一问题的不同表相。选项:A:对B:错答案:【对】10、问题:学习设计模式可以缩短软件的开发周期。选项:A
4、:错B:对答案:【对】第二章单元测试1、问题:以下关于创建型模式说法正确的是()。选项:A:创建型模式关注的是对象的创建B:创建型模式关注的是功能的实现C:创建型模式关注的是组织类和对象的常用方法D:创建型模式关注的是对象间的协作答案:【创建型模式关注的是对象的创建】2、问题:当创建一个具体的对象而不希望制定具体的类时,可以使用()模式。选项:A:结构型B:行为型C:复用型D:创建型答案:【创建型】3、问题:当需要在项目中定制自己的元素时,可使用()模式来定制。选项:A:复用型B:行为型 C:创建型D:结构型答案:【创建型】4、问题:当应用工厂方法(FactoryMethod)模式时要考虑()
5、。选项:A:主要有两种不同的情况B:使用模板以避免创建子类C:参数化工厂方法D:特定语言的变化和问题答案:【主要有两种不同的情况;使用模板以避免创建子类;参数化工厂方法;特定语言的变化和问题】5、问题:工厂模式分为()3种类型。选项:A:工厂方法B:单例C:简单工厂D:抽象工厂答案:【工厂方法;简单工厂;抽象工厂】6、问题: 简单工厂模式可以根据参数的不同返回不同的实例。选项:A:错B:对答案:【对】7、问题:工厂方法模式的主要角色有:抽象工厂(AbstractFactory)、具体工厂(ConcreteFactory)、抽象产品(Product)和具体产品(ConcreteProduct)。
6、选项:A:对B:错答案:【对】8、问题: 抽象工厂模式是简单工厂模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。选项:A:对B:错答案:【错】9、问题:创建型模式把实例化的责任与使用实例的责任分割开来。选项:A:错B:对答案:【对】10、问题:由于AbstractFactory类和具体工厂方法可以分离,因此在实现时会产生更多的类。选项:A:对 B:错答案:【错】第三章单元测试1、问题:()可用来描述原型(Prototype)。选项:A:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。B:表示一个作用于
7、某对象结构中的各元素的操作。它是你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。C:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。D:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。答案:【用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。】2、问题:在()适合使用单例(Singleton)模式。选项:A:当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时B:当一个类希望由它的子类来指定它所创建的对象的时候C:当一个类的实例只能有几个不同的状态组合中的一种时D:当一个类不知道它所必须创建的
8、对象的类的时候答案:【当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时】3、问题:在()不适合使用原型(Prototype)模式。选项:A:当要实例化的类是在运行时刻指定是,例如通过动态装载B:当一个类的实例只能有几个不同状态组合中的一种时C:为了避免创建一个与产品类层次平行的工厂类层次时D:当要强调一系列相关的产品对象的设计以便进行联合使用时答案:【当要强调一系列相关的产品对象的设计以便进行联合使用时】4、问题:单例模式中,两个基本要点()和单子类自己提供单利。选项:A:构造函数私有B:唯一实例C:动态工厂方法D:静态工厂方法答案:【构造函数私有;唯一
9、实例】5、问题:使用原型(Prototype)模式时要考虑的问题有()。选项:A:用类动态配置应用B:使用一个原型管理器C:初始化克隆对象D:实现克隆操作答案:【使用一个原型管理器;初始化克隆对象;实现克隆操作】6、问题:建造者模式包括:()等主要角色。选项:A:产品角色(Product)B:指挥者(Director) C:抽象建造者(Builder)D:具体建造者(ConcreteBuilder)答案:【产品角色(Product);指挥者(Director);抽象建造者(Builder);具体建造者(ConcreteBuilder)】7、问题:单例模式分为懒汉式单例和饿汉式单例两种。选项:A
10、:错B:对答案:【对】8、问题:原型(Prototype)模式包含:抽象原型类、具体原型类和访问者类等3个部分。选项:A:对B:错答案:【对】9、问题:建造者的退化模式是通过省略使用者角色完成退化的。选项:A:错B:对答案:【错】10、问题:懒汉式单例类在第一次被引用时将自己实例化。选项:A:错B:对答案:【对】第四章单元测试1、问题:用来描述适配器(Adapter)的意图是()。选项:A:将一个请求封装为一个对象,从而使用户可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作B:定义一个用于创建对象的接口,让子类决定实例化哪一个类C:将一个类的接口转换成客户希望的另
11、外一个接口,本模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作D:表示一个作用于某对象结构中的各元素的操作,它使用户可以在不改变各元素的类的前提下定义作用于这些元素的新操作答案:【将一个类的接口转换成客户希望的另外一个接口,本模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作】2、问题:关于模式适用性,不适合使用适配器(Adapter)模式的是()。选项:A:用户想使用一个已经存在的类,而它的接口不符合用户的需求B:用户想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作C:如果删除对象的外部状态,那么可以用相对较少的共享对象
12、取代很多组对象D:用户想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口答案:【如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象】 3、问题:对象的结构模式包括()。选项:A:装饰模式B:享元模式C:合成模式D:代理人模式答案:【装饰模式;享元模式;合成模式;代理人模式】4、问题:适配器模式分为()2种。选项:A:组合模式B:类结构型模式C:对象结构型模式D:代理模式答案:【类结构型模式;对象结构型模式】5、问题:类适配器模式和对象适配器模式可用Java实现。选项:A:错B:对答案:【对】6、问题:类结构型模式之间的耦合度
13、比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。选项:A:对B:错答案:【对】7、问题:适配器模式不可以模拟新能源汽车的发动机。选项:A:对B:错答案:【错】8、问题:一个类的结构模式的典型例子就是类的适配器模式。选项:A:错B:对答案:【对】9、问题:对象的结构模式描述怎样把各种不同类型的对象组合在一起,以实现新的功能,其是动态的。选项:A:对B:错答案:【对】10、问题:作为适配器模式的一个特例,缺省适配器模式在Java语言中有着特殊的应用。选项:A:错 B:对答案:【对】第五章单元测试1、问题:以下哪一项可用来描述装饰(Decorator)()。选项:A:
14、用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象B:运用共享技术有效地支持大量细粒度的对象C:将抽象部分与它的实现部分分离,使它们都可以独立变化D:动态地给一个对象添加一些额外的职责答案:【动态地给一个对象添加一些额外的职责】2、问题:装饰(Decorator)模式不能用于下列那个选项()。选项:A:处理那些可以撒销的职责B:客户程序与抽象类的实现部分之间存在着很大的依赖性C:在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责D:当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,每种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是类的定义被隐藏,或类定义不能用于生成子类答案:【客户程序与抽象类的实现部分之间存在着很大的依赖性】3、问题:关于模式适用性,以下()不适合使用Comp