2024架构整洁之道理论考核试题及答案_第1页
2024架构整洁之道理论考核试题及答案_第2页
2024架构整洁之道理论考核试题及答案_第3页
2024架构整洁之道理论考核试题及答案_第4页
2024架构整洁之道理论考核试题及答案_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

架构整洁之道理论考核试题

一、选择题

1.为了避免多人为了不同的目标修改同一份源代码,我们应该采取哪种方法()[单选题]

A、不复用别人的代码,自己重新写T分

B、将服务不同行为者的代码进行切分V

C、锁定文件,不让其他人修改

D、谁最后修改了代码谁负责

2.将服务不同行为者的代码进行切分的方法,以下说法错误的是()[单选题]

A、将数据与函数分离

B、使用facade(外观)模式

C、将重要的函数留在类中,同时使用这个类调用其他没那么重要的函数

D、每个开发人员写自己的类,互不影响V

3.SRP原则是什么原则()[单选题]

A、单一职责原则V

B、开闭原则

C、里氏替换原则

D、接口隔离原则

4.0CP原则是什么原则()[单选题]

A、单一职责原则

B、开闭原则V

C、里氏替换原则

D、接口隔离原则

5.LSP原则是什么原则()[单选题]

A、单一职责原则

B、开闭原则

C、里氏替换原则V

D、接口隔离原则

6.ISP原则是什么原则()[单选题]

A、单一职责原则

B、开闭原则

C、里氏替换原则

D、接口隔离原则V

7.DIP原则是什么原则()[单选题]

A、单一职责原则

B、开闭原则

C、里氏替换原则

D、接口隔离原则

E、依赖反转原则V

8.一个好的架构在新增功能时应该将旧代码的修改需求量降至最小,我们首先应该做的是()[单选题]

A、将不同需求的代码分组V

B、调整不同分组代码的依赖关系

C、抽象业务接口,实现不同的子类

D、设计数据表结构

9.如果A,B组件存在依赖关系,A组件不想被B组件上发生的修改所影响,应该()[单选题]

A、应该让A组件依赖于B组件

B、应该让B组件依赖于A组件V

C、应该让A,B组件相互依赖

D、切断A,B组件的依赖关系

10.在系统架构中,最符合OCP(开闭)原则的是()[单选题]

A、Controller(控制)层

B、Service(服务)层

C、View(展示)层

D、Interface层V

11.假设有一个L类,该类有个calcFee方法由Billing类调用,L类有两个子类分别实现了calcFee方

法,上述设计符合什么设计原则[单选题]

A、单一职责原则

B、开闭原则

C、里氏替换原则V

D、接口隔离原则

12有一个矩形类L存在setH,setW两个方法,他有一个正方形子类S存在一个setSide方法,该设

计违反了哪个设计原则()[单选题]

A、单一职责原则

B、开闭原则

C、里氏替换原则V

D、接口隔离原则

13.LSP可以且应该被应用与软件架构层面,因为一旦违背了()性,该系统架构就不得不为此增添大

量复杂的应对机制[单选题]

A、可替代性V

B、依赖性

C、隔离性

D、唯一性

14.任何层次的软件设计如果依赖于不需要的东西,就会带来意料之外的麻烦,属于()设计原则[单选

题]

A、单一职责原则

B、开闭原则

C、里氏替换原则

D、接口隔离原则,

15.对于那个语言来说需要程序员显式的import,use或include其功能所需要的源代码[单选题]

A、javaV

B、ruby

C、python

D、JavaScript

16QCP使我们进行系统架构设计的主导原则,目标是让系统()[单选题]

A、易于扩展V

B、组件分离

C、依赖控制

D、接口隔离

17.0CP设计实现方式不包括一下哪个()[单选题]

A、将系统划分为一系列组件

B、将组件间的依赖关系按层次结构进行组织

C、高阶组件不会因为低阶组件被修改而受影响

D、设计组件的可替换性V

18.依赖反转原则告诉我们,如果想设计一个灵活的系统,在源码层次的依赖关系中应该()[单选题]

A、引用抽象类型V

B、引用具体实现

C、引用其他工具类

D、写高质量代码

19.如果想要在软件架构上追求稳定,就必须多使用稳定的抽象接口,少依赖多变的具体实现类,以下

说法不正确的是[单选题]

A、应在代码中多使用抽象接口,避免使用那些多变的具体实现

B、不要在具体实现类上创建衍生类

C、不要覆盖包含具体实现的函数

D、以上均不正确,

20.设计良好的计算机软件应该()扩展,同时()修改。[单选题]

A、利于、避免

B、利于、抗拒

C、易于、避免

D、易于、抗拒V

21.()的出现使得插件式架构可以在任何地方被安全的使用[单选题]

A、结构化编程

B、面向对象编程V

C、函数式编程

D、响应式编程

22.下列需求开发过程中的观念正确的是()[单选题]

A、我们可以未来再重构代码,产品上线最重要

B、在工程中容忍糟糕的代码存在可以短期内加快该工程上线的速度,未来这些代码会造成一些额外的

工作量但是并没有什么大不了

C、对于一个乱麻系统挽救的唯一办法就是抛弃现有系统,设计T全新的系统来替代

D、采用循规蹈矩的方式编写代码V

23.软件系统应该容易被修改,体现的是下列哪个价值[单选题]

A、行为价值

B、架构价值V

C、产品价值

D、程序员价值

24.结构化编程对程序控制权的()进行了限制和规范[单选题]

A、间接转移

B、强制转移

C、直接转移V

D、获取

25.面向对象编程对程序控制权的()进行了限制和规范[单选题]

A、间接转移V

B、强制转移

C、直接转移

D、获取

26.函数式编程对程序中的()进行限制和规范[单选题]

A、赋值V

B、转移

G赚

D、返回

27.()是我们跨越架构边界的手段[单选题]

A、封装

B、继承

C、多态V

D、面向对象编程

28.()是我们规范和限制数据存放位置和访问权限的手段[单选题]

A、结构化编程

B、面向对象编程

C、函数式编程V

D、响应式编程

29.()是各模块的算法实现基础[单选题]

A、面向对象编程

B、结构化编程V

C、函数式编程

D、响应式编程

30.结构化编程范式可将()递归降解拆分为可推导的单元[单选题]

A、程序

B、类

C、函数

D、模块V

31.结构化编程范式最有价值的地方就是,它赋予了我们创造()的能力[单选题]

A、可证明程序单元

B、最简洁代码

C、可证伪程序单元V

D、最直观代码

32.()就是以多态为手段来对源代码中的依赖关系进行控制的能力,这种能力让软件架构何以构建

出某种插件式架构[单选题]

A、结构化编程

B、面向对象编程V

C、函数式编程

D、响应式编程

33.()的变量是不可变的[单选题]

A、结构化编程

B、面向对象编程

C、函数式编程V

D、响应式编程

34.一个架构设计良好的应用程序应该将状态修改的部分和不需要修改状态的部分隔离成单独的(),

然后用合适的机制来保护可变量[单选题]

A、类

B、函数

C、模块

D、组件V

35.软件架构师应该着力于将大部分处理逻辑都归于不可变组件中,可变状态组件的逻辑应该()[单选

题]

A、越多越好

B、越少越好V

C、越灵活越好

D、越简单越好

36.C语言是下面哪种类型的编程语言[单选题]

A、面向对象编程

B、结构化编程V

C、函数式编程

D、响应式编程

37.下列哪项体现了依赖反转的思想[单选题]

A、某适配对象依赖于适配器接口的抽象V

B、业务服务调用数据库组件

C、业务服务依赖公共基础模块

D、高层函数调用中层函数

38.面向对象编程是以()为手段来对源代码中的依赖关系进行控制[单选题]

A、封装

B、继承

C、多态V

D、依赖反转

39.LISP是下列哪种编程语言[单选题]

A、结构化编程

B、面向对象编程

C、函数式编程V

D、响应式编程

40JAVA中某个父类统一操作或方法在不同对象实例上具有不同的行为,体现的是[单选题]

A、多态V

B、继承

C、封装

D、依赖反转

41.关于编程范式,以下说法不正确的是()[单选题]

A、结构化编程是对程序控制权直接转移的限制

B、面向对象编程是对程序控制权间接转移的控制

C、函数式编程是对程序中赋值操作的限制

D、面向对象编程是对程序控制权直接转移的控制V

42.关于设计和架构,以下说法正确的是()[单选题]

A、我们可以未来再重构代码,产品上线最重要

B、在工程中可以容忍少许的糟糕代码

C、要想跑得快,先要跑的稳,

D、循规蹈矩的工作速度长远来看比胡编乱写的速度会慢

43.软件架构的终极目的是()[单选题]

A、用最小的人力成本来满足构建和维护该系统的需求V

B、在开始研发一个产品之前就能确定软件设计过程中的所有细节

C、用最少的人力和时间成本完成一个产品的交付

D、使当前软件的系统架构在行业内处于领先水平

44.关于软件系统的价值维度,以下说法不正确的是()[单选题]

A、系统行为紧急不重要

B、架构行为重要不紧急

C、程序员的工作就是编写程序,给用户创造或者提高利润

D、软件变更的难度应该和变更的具体形状成等比关系V

45.软件开发过程中常常发生系统架构和系统功能行为相冲突,()来平衡这两件事的紧急程度?[单选

A、部门主管或更上级领导

B、产品经理或项目经理

C、最终用户

D、研发人员V

46.某项目组在开发一款软件过程中,忽略了软件架构的价值,导致最终交付系统几乎无法更改和维护。

总结经验和教训时,应该判定是()需要改进[单选题]

A、测试

B、软件开发V

C、需求方

D、产品经理或项目经理

47.究竟什么是面向对象?以下说话比较贴切的是()[单选题]

A、是一种对真实世界进行建模的方式

B、数据与函数的组合

C、是封装、继承、多态的有机组合。

D、以多态的手段来对源代码中的依赖关系进行控制的能力

48.我们可以用三种结构构造出任何程序,这三种结构不包含哪种()[单选题]

A、递归结构V

B、顺序结构

C、循环结构

D、分支结构

49.结构化编程赋予了我们创造可证伪程序单元的能力,()仍然是结构化编程的最佳实践之一[单选题]

A、推导

B、功能性降解拆分V

C、多态

D、继承

50.在《架构整洁之道》这本书中,DIP是以下哪个选项的缩写?[单选题]

A、DependencylnjectionPrinciple

B、DigitallntegrationPlatform

C、DependencylnversionPrincipleV

D、DocumentlmageProcessing

51.以下符合依赖反转原则(DIP)做法的是?[单选题]

A、因为类中字段没有提供set方法,使用反射修改这个字段的值

B、两个类C1.C2存在相互依赖,抽象出IC1,IC2接口,使得C1,C2分别依赖于IC1JC2接口,而不

相互依赖V

C、系统新增一个功能与现有类C1的功能类似,通过继承类C1,减少重复代码

D、在代码中将对象强制转换成实际类型的对象,从而取得对对象更多的控制

52.以下哪种生活/工作场景,与依赖反转原则(DIP)具有相似性[单选题]

A、领导将任务交代给一个团队来完成,而不是指定团队中的某个人来完成V

B、"如果我这边信息有变动,我会主动通知到您"

C、将专业的事情交给专业的人负责

D、外部对接部门行政事务负责人,然后由部门负责人去对接内部人员

53.运用依赖反转原则(DIP)的原因是[单选题]

A、接口或抽象类一般比其实现类更稳定V

B、实现类允许继承(实现)多个接口,有些接口我们用不到

C、实现类一般都比较复杂,而接口往往比较简单

D、实现类的对象不能被运行时增强

54.关于单一职责原则(SRP)的描述正确的是()[单选题]

A、不同行为者所依赖的代码可以放在一个类里面进行封装

B、解决同一个类不同行为者修改方法的方式是将代码合并之后,解决当前冲突;

C、任何一个软件模块都应该只对某一类行为者负责V

D、不同行为者所依赖的代码放到一起,当一个行为者修改代码之后,代码没有冲入,不会对其他行为

者使用产生影响;

55.在工作中,经常遇到同一个service实现类方法由于不同需求变更,多个团队需要修改,当出现冲

突的时候,最好的解决办法是?[单选题]

A、不管别人调用,仅修改自己的功能,满足自己的需求即可;

B、代码合并,解决冲突,只验证自己的功能;

C、重构当前方法,将不同行为的者的代码进行拆分,使其软件模块只花一类行为负责;V

D、为了避免冲突,自己先提交代码,验证功能,不管其他团队;

56.下面关于单一职责原则描述正确的是?[单选题]

A、单一职责主要讨论的是函数和类之间的关系,但是在两个讨论层面上会议不同形式出现V

B、同一个软件模块可以有多个被修改的原因

C、同一个软件模块允许有多个行为者共同负责

D、同一个软件模块可以有多个系统利益相关者

57.下面哪一项不能体现了里氏替换原则(LSP)?[单选题]

A、用户行为可以依赖他所使用的类,并且这些类可以不用相互替换V

B、用户可以调用授权L类计算授权费用方法进行授权付费,并且该授权类有两个衍生类A和B,这两

个类会用不同算法来计算授权费用,这样是符合里氏替换原则的

C、对于每个类型是S的对象。1都存在一个类型为T的对象02,能使糜作T类型的程序P在用。2

替换。1时行为保持不变,可以将S称为T的子类型

D、一个软件实体如果使用的是一个基类的话,那么一定适用于其子类,而且它根本不能察觉出基类对

象和子类对象的区别

58.以下哪一项不能体现里氏替换原则四层含义?[单选题]

A、子类必须完全实现父类的方法

B、子类不能有自己的个性。

C、覆盖或实现父类的方法时,输入参数可以被放大

D、覆写或实现父类的方法时输出结果可以被缩小

59.以下父类方法、子类方法(或返回方法)不符合里氏替换原则的是?[单选题]

A、父类方法func(HashM叩map);子类方法func(M叩m叩);

B、父类方法func(inta);子类方法newFunc(inta);

C、父类方法publicabstractMapfun();子类方法publicHashMapfun(){};

D、父类方法func(M叩map);子类方法func(HashM叩m叩W

60.设计模式六大原则中,接口隔离原则的简称是哪个?[单选题]

A、OCP

B、LSP

C、ISPV

D、DIP

61.关于接口隔离原则,以下叙述有误的是()[单选题]

A、在系统设计时,客户端不应该依赖那些它不需要的接口

B、当一个接口太大时,需要将它分割成一些更细小的接口,使用该接口的客户端类仅需知道与之相关

的方法即可

C、接口应该尽量细化,同时接口中的方法应该尽可能少,理想情况下是在每个接口中只定义一个方法,

该接口使用起来最为方便V

D、一个接口只代表一个角色,每个角色都有它特定的一个接口

62.OCP是我们进行系统架构设计的主导原则,其主要目标是()[单选题]

A、让系统易于扩展,同时限制其每次被修改所影响的范围V

B、所有功能组件化

C、便于代码的修改,同时不增加新的子类

D、以上都不是

63.以下对开闭原则的描述错误的是()[单选题]

A、开闭原则与“对可变形的封装原则"没有相似性V

B、找到一个系统的可变元素,将它封装起来,叫开闭原则

C、对修改关闭,是其原则之一

D、从抽象层导出一个或多个新的具体类可以改变系统的行为,是其原则之一

64.开闭原则的含义是一个软件实体()[单选题]

A、应当对修改开放,对扩展关闭

B、应当对扩展开放,对修改关闭V

C、应当对继承开放,对修改关闭

D、以上都不对

65.开闭原则的实现方式是()[单选题]

A、先调整各类之间的依赖关系,再对各类进行分组(SRP)

B、通过分析系统之间的依赖关系,抽离公共的逻辑,所有修改集中在一个范围中,使得其它逻辑不需

要进行修改

C、通过将系统划分为一系列组件,并且将这些组件间的依赖关系按层次结构进行组织,使得高阶组件

不会因低阶组件被修改而受到影响V

D、以上都不对

66.SOUD五大设计原则包括哪五大原则()[多选题]

A、单一职责原则V

B、开闭原则V

C、里氏替换原则V

D、接口隔离原则V

E、依赖反转原则V

67.将服务不同行为者的代码进行切分的方法,以下说法正确的是()[多选题]

A、将数据与函数分离,

B、使用facade(外观)模式V

C、将重要的函数留在类中,同时使用这个类调用其他没那么重要的函数,

D、每个开发人员写自己的类,互不影响

68.对于那个语言来说不需要程序员显式的import,use或include其功能所需要的源代码()[多选

题]

A、java

B、rubyV

C、pythonV

D、JavaScriptV

69.为了避免多人为了不同的目标修改同一份源代码,我们应该采取哪种方法,以下说法不正确的是()

[多选题]

A、不复用别人的代码,自己重新写T分V

B、将服务不同行为者的代码进行切分

C、锁定文件,不让其他人修改V

D、谁最后修改了代码谁负责V

70.一个好的架构在新增功能时应该将旧代码的修改需求量降至最小,我们应该做的是()[多选题]

A、将不同需求的代码分组V

B、调整不同分组代码的依赖关系V

C、开发足够多的的工具类

D、设计数据表结构

71.在软件架构设计中为什么Interactor会放在重要位置()[多选题]

A、他是程序的业务逻辑所在之处V

B、包含了其最高层的应用策略V

C、其他组件都只是负责处理周边的辅助逻辑V

D、Interactor是核心组件V

72.依赖反转原则告诉我们,如果想设计一个灵活的系统,在源码层次的依赖关系中应该(),以下说

法不正确的是()[多选题]

A、引用抽象类型

B、引用具体实现V

C、引用其他工具类V

D、写高质量代码V

73.关于SOLID原则以下说法正确的是()[多选题]

A、任何一个软件模块只能有一个被修改的原因V

B、设计良好的计算机软件应该易于扩展,同时抗拒修改V

C、在一般情况下,任何层次的软件设计如果依赖于不需要的东西,都会是有害的V

D、DIP原则想告诉我们的是,如果想要设计一个灵活的系统,在源代码层次的依赖关系中就应该多引

用抽象类型,而三溟体实现V

74.我们应该关注的是软件系统内部那些会经常()的具体实现模块,这些模块是()的,也就经常会

出现变更()[多选题]

A、变动的V

B、不变的

C、不停开发V

D、稳定的

75.如果想要在软件架构上追求稳定,就必须多使用稳定的抽象接口,少依赖多变的具体实现类,以下

说法正确的是()[多选题]

A、应在代码中多使用抽象接口,避免使用那些多变的具体实现,

B、不要在具体实现类上创建衍生类V

C、不要覆盖包含具体实现的函数V

D、应避免在代码中写入与任何具体实现相关的名字,或者其他容易变动的事物的名字V

76.对于每个软件系统,我们都可以通过哪些维度来体现它的实际价值()[多选题]

A、行为V

B、性能

C、质量

D、架构V

77.下列对系统价值维度描述正确的是()[多选题]

A、系统行为,是紧急的,但是并不总是特别重要V

B、系统架构,是重要的,但是并不总是特别紧急V

C、系统架构,是重要的,且特别紧急

D、系统行为,是重要的,且并不总是特别紧急

78.编程范式包含下列哪几个()[多选题]

A、结构化编程V

B、面向对象编程V

C、函数式编程V

D、响应式编程

79.软件架构的三大关注点()[多选题]

A、稳定性

B、功能性V

C、组件独立性V

D、数据管理V

80.事件溯源这种数据存储模式中不存在()和()的情况()[多选题]

A、新增

B、删除V

C、更新V

D、查询

81.软件,或者说计算机程序无T列外是由哪几种行为组合而成的()[多选题]

A、顺序结构V

B、分支结构V

C、循环结构V

D、间接转移V

82.系列哪些是面向对象编程语言()[多选题]

A、C

B、JAVAV

C、C++V

D、C#V

83.面向对象编程包含下列哪些特性()[多选题]

A、封装V

B、继承V

G多态V

D、响应式编程

84.下列说法哪些是正确的()侈选题]

A、通过类中的公共的数操作私有成员变量体现了封装的思想。

B、代码中Cat类实现Animal类eat()方案采到了继承的方式V

C、适配器模式体现多态的思想V

D、只有面向对象程序中才会用到多态的思想

85.需求变更的()和()是决定对应软件变更实施成本高低的关键()[多选题]

A、内容

B、范畴V

C、时间

D、形状V

86.以下哪些是遵循依赖反转原则(DIP)的良好编码守则()[多选题]

A、应在代码中多使用抽象接口,尽量避免使用那些多变的具体实现类V

B、不要在具体实现类上创建衍生类V

C、不要覆盖(override)包含具体实现的函数V

D、应避免在代码中写入与任何具体实现相关的名字,或者是其他容易变动的事物的名字V

87.以下表述与书中依赖反转原则(DIP)表述具有相似含义的是()[多选题]

A、抽象不应该依赖细节,细节依赖抽象,

B、高层模块不应该依赖低层模块,两者都应该依赖于其抽象V

C、Don'tcallus,we'lleaIlyou

D、派生类对象可以在程序中代替其基类对象

88.SOUD包含哪些具体原则?()[多选题]

A、OCPV

B、LSPV

C、SRPV

D、IOC

89.任何一个软件模块都应该只对某一类行为负责,其中软件模块具体是指什么内容?()[多选题]

A、一组紧密相关的函数和数据结构V

B、一个公共组件

C、一个函数方法

D、一个源代码文件V

90.遵循里氏替换原则可以带来哪些优势()[多选题]

A、增强了代码的可维护性V

B、提高代码的可扩展性V

C、降低代码的耦合度V

D、继承是侵入性的

91.里氏替换原则四层含义包含以下哪些()[多选题]

A、子类可以实现父类的抽象方法,但是不能覆盖父类的非抽象方法V

B、子类中可以增加自己特有的方法V

C、当子类覆盖或实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽

松V

D、当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格V

92.实现接口隔离原则的方法()[多选题]

A、将接口划分为更小的、更具体的接口,每个接口只包含客户端所需的方法V

B、使用基类的地方必须使用子类进行替换

C、使用依赖注入V

D、使用适配器模式。

93.使用接口隔离原则可以带来许多好处()[多选题]

A、降低耦合度V

B、提高灵活性V

C、增强可维护性V

D、提高代码复用性。

94.以下哪些模式符合开闭原则()侈选题]

A、简单工厂模式

B、工厂方法模式V

C、原型模式V

D、桥接模式。

95.开闭原则相关的面向对象设计原则()[多选题]

A、单一职责原则V

B、依赖倒置原则V

C、接口隔离原则V

D、里氏替换原则。

96.任何一个软件模块可以有任意多个被修改的原因。

错V

97.设计良好的计算机软件应该易于扩展,同时拒绝修改。

错V

98.在一般情况下,任何层次的软件设计如果依赖于不需要的东西,都会是有害的。

对V

99.如果A,B组件存在依赖关系,A组件不想被B组件上发生的修改所影响,应该让B组件依赖于A

组件。

对,

100.假设有3个用户需要操作ops类,分别调用ops类的不同方法,没必要将各自调用的方法隔离出

不同接口。

错V

101.DIP原则想告诉我们的是,如果想要设计一个灵活的系统,在源代码层次的依赖关系中就应该多

引用具体实现,而非抽象类型。

错V

102.软件架构设计的终极目标是,用最优的架构来满足构建和维护该系统的需求。

错V

103.我们可以未来再重构代码,产品上线最重要。

错V

104.任何情况下系统正常工作都比系统易于修改更重要。

错V

105.在架构设计领域,功能性降解拆分仍然时最佳实践之一。

对V

106.所有的竞争问题、死锁问题、并发更新问题都是由可变量导致的。

对V

107.软件开发的一个核心特点:要想跑的快,先要跑得稳。

对V

108.依赖反转原则(DIP)告诉我们,要将所有对具体实现类的依赖,转为对接口、抽象类的依赖,我

们在软件系统中可以完全消除违反DIP的情况。

错V

109.任何一个软件模块都应该有且仅有一个被修改的原因。

对V

110.一个子类应该可以完全替代它的父类,并且保持程序的正确性和已执行。

对V

111.一个好的软件架构设计师会努力将旧代码的修改需求量降至最小,甚至为0。

对V

112.对系统进行抽象化是实现开闭原则的方法。

对V

113.接口隔离原则强调将一个大接口拆分成许多小接口,不同小接口灵活组合,增加了灵活性但提升

了代码的冗余程度。

错V

B

1.架构设计的工作常常需要将组件重排组合成为一个(\[单选题]

A、完全图

B、无向图

C、有向无环图V

D、二分图

2.在一个设计良好的架构中,依赖关系的方向通常取决于他们所关联的(\[单选题]

A、组件聚合

B、组件耦合

C、组件层次V

D、边界

3.软件架构设计的工作重点之一是将策略批次分离,将他们按照()进行重组。[单选题]

A、策略

B、依赖关系

C、变更的方式V

D、层次

4.代表业务逻辑的代码应该是整个系统的核心,其他低层概念的实现应该以()形式接入系统。[单选

A、组件

B、模块

C、插件V

D、框架

5.业务实体属于()概念,而用例属于()概念。[单选题]

A、高层、低层V

B、低层、高层

C、里层、外层

D、外层、里层

6.用例控制着()之间的交互方式。[单选题]

A、组件

B、业务实体V

C、模块

D、程序

7.框架应该是一个()[单选题]

A、可选项V

B、必选项

C、插件项

D、部署项

8.一个良好的架构设计应该围绕着()来展开[单选题]

A、领导

B、公司资源

C、研发

D、用例V

9.架构设计的主题应该基于[单选题]

A、用例V

B、开发

C、领导

D、用户

10.良好的架构设计应该只关注()[单选题]

A、代码

B、用例。

C、框架

D、开发量

11.我们一定要带着()的态度看待每一个框架。[单选题]

A、包容

B、点赞

C、信徒

D、怀疑V

12.系统架构的设计目标是按照不同的()对软件进行切割。[单选题]

A、切入点

B、契合点

C、关注点,

D、边界点

13.关于业务实体说法不正确的是?[单选题]

A、业务实体封装了整个系统的关键业务逻辑

B、业务实体不能被其他应用复用V

C、业务实体是一个带有方法的对象

D、业务实体是一组数据结构和函数的集合

14.属于接口适配器层的不包括以下哪个选项?[单选题]

A、数据库V

B、展示器

C、视图

D、控制器

15.不属于最外层的模型层的组成部分的是?[单选题]

A、工具

B、数据库

C、Web框架

D、网关V

16.下列说法正确的是?[单选题]

A、最内层包含最通用、最高层的策略

B、源码层面的依赖一定要指向同心圆内侧

C、层次越往内,抽象和策略层次越低,其抽象程度越高V

D、最外层包含最具体的实现细节

17.构造合理的跨边界调用需要我们对源码中的一进行合理管控[单选题

A、依赖数量

B、依赖关系V

C、代码质量

D、开发方式

18."谦卑对象模式"最初的设计目的是?[单选题]

A、区分容易和难以测试的行为V

B、处理组件依赖关系

C、帮助设计系统架构

D、方便将数据填充到GUI上

19.对象关系映射器(ORM)系统统应该属于系统架构中的哪一层?[单选题]

A、GUI层

B、中间件层

C、数据库层V

D、源码层

20.在整个系统中,只有一依赖于Main组件。[单选题]

A、用例

B、底层组件

C、高层组件

D、操作系统V

21.Main组件也可以被视为应用程序的一个___负责设置起始状态、配置信息、加载外部资源,最后

将控制权转交给应用程序的其他高层组件[单选题]

A、插件V

B、依赖

C、入口

D、边界

22.谦卑对象(humbleobject)这种设计模式可以很好地帮助识别和保护系统架构的—。[单选题]

A、缺陷

B、边界V

C、作用

D、目标

23.SQL部分的功能需要通过网关接口来提供,而这些接口的实现则要由____的类来负责[单选题]

A、GUI层

B、中间件层

C、数据库层V

D、源码层

24.我们将系统行为分割成可测试和不可测试两部分的过程常常就也定义了系统的—[单选题]

A、策略

B、组件分类标准

C、用例

D、架构边界V

25.对于用例交互器(interacts)与数据库中间的组件,我们通常称之为:[单选题]

A、数据库网关V

B、Main组件

C、业务组件

D、数据映射器

26.对象不是数据结构。至少从用户的角度来说,对象内部的数据应该都是:[单选题]

A、公开的

B、不可见的V

C、部分可见的

D、可修改的

27.通过在系统的边界处运用我们可以大幅地提高整个系统的可测试性。[单选题]

A、展示器与视图

B、策略模式

C、谦卑对象模式V

D、数据映射器

28.以下关于数据库映射器描述错误的是?[单选题]

A、数据映射器是一种设计模式

B、它用于将应用程序的数据模型与数据存储(通常是数据库)之间进行解耦

C、它的主要目标是保持领域模型的纯粹性,使其不受持久化和存储细茫的影响

D、可用于将对象模型与关系型数据库之间进行映射,

29.以下关于数据库网关描述错误的是?[单选题]

A、数据库网关是一个中间层软件组件,用于连接不同类型的数据库和数据存储系统

B、数据库网关处理协议转换、查询翻译、数据转换、安全性、权限控制等任务,以确保应用程序可以

方便地与各种数据库进行

C、数据库网关同时也是一种设计模式,用于处理应用程序的业务逻辑V

D、数据库网关可以用于协议转换

30.关于服务监听器描述正确的是?[单选题]

A、用于监控和响应特定服务或事件的组件或模块V

B、它包含了应用程序在数据库上所要执行的创建、读取、更新、删除等操作

C、它是一种设计模式

D、用于管理和发现谦卑对象

31.采用架构整洁之道的目的是?[单选题]

A、单一职责原则(SingleResponsibilityPrinciple)和开放封闭原则(Open-ClosedPrinciple),从

而帮助构建更可扩展和易于维护的代码

B、将事件的产生和处理分离,使系统的各个组件能够松耦合地协同工作

C、创建可维护、可测试、可扩展且独立于外部因素的软件系统。

D、一种设计模式,也是一种软件开发技术

32.Main组件中的依赖关系通常应该由一框架来注入[单选题]

A、协调、创建

B、依赖注入V

C、组件

D、依赖反转

33.以下关于展示器视图和谦卑对象关系对的是[单选题]

A、视图部分属于可测试的谦卑对象

B、展示器是可测试的对象V

C、展示器是难以测试的对象

D、视部分是相对容易测试的谦卑对象

34.强大的()是一个架构的设计是否优秀的显著衡量标准之一[单选题]

A、框架

B、性能

C、可测试性V

D、架构

35.数据结构可以进行()的传输[单选题]

A、跨模块

B、跨组件

C、跨边界

D、跨服务边界V

36.()的职责之一就是预判未来哪里有可能会需要设置架构边界,并决定应该以完全形式还是不完全

形式来实现它们。[单选题]

A、开发人员

B、架构师V

C、系统分析师

D、测试人员

37.门户模式下,我们可以省掉()工作。[单选题]

A、循环依赖

B、单一职责

C、接口隔离

D、依赖反转V

38.在设计一套完整的系统架构边界时,往往需要用反向接口来维护边界两侧组件的();[单选题]

A、隔离性V

B、独立行

C、可测试性

D、依赖性

39.谦卑对象模式最初的设计目的是帮助()的编写者区分容易测试的行为与难以测试的行为,并将它

们隔离[单选题]

A、功能测试

B、单元测试V

C、集成测试

D、用户测试

40.在设计一套完整的系统架构边界时,往往需要用()来维护边界两侧组件的隔离性。[单选题]

A、依赖反转

B、反向接口V

C、接口隔离

D、组件聚合

41.门户模式:()的间接转移不用接口和实现去做,而是用门户类去做,用这种方式连接口都不用声

明了。[单选题]

A、调用方

B、被调用方

C、赋值权

D、控制权V

42.构建完整的架构边界是一件很耗费成本的事。在这个过程中,需要为系统设计(),用于输入和输

出的数据结构。[单选题]

A、组件层级

B、双向的多态边界接口V

C、独立的接口

D、单向的输入模式

43.不属于边界的解耦方式的是()?[单选题]

A、源码层次

B、部署层次

C、服务层次

D、组件层次V

44.作为(),我们必须要小心审视究竟在什么地方才需要设计架构边界c另外,我们还必须弄清楚完

全实现这些边界将会带来多大的成本[单选题]

A、架构师V

B、软件工程师

C、BA

D、产品经理

45,Main组件也可以被视为应用程序的一个插件一这个插件负责(\配置信息、加载外部资源,最

后将控制权转交给应用程序的其他高层组件[单选题]

A、设置起始状态V

B、配置信息

C、加载外部资源

D、初始化

46.Main组件也可以被视为应用程序的一个插件一这个插件负责设置起始状态、()加载外部资源,

最后将控制权转交给应用程序的其他高层组件[单选题]

A、设置起始状态

B、配置信息V

C、加载外部资源

D、初始化

47.Main组件也可以被视为应用程序的一个插件-这个插件负责设置起始状态、配置信息、(),最

后将控制权转交给应用程序的其他高层组件[单选题]

A、设置起始状态

B、配置信息

C、加载外部资源V

D、初始化

48.由于Main组件能以()存在于系统中,因此我们可以为一个系统设计多个Main组件,让它们各

自对应于不同的配置。[单选题]

A、组件形式

B、插件形式V

C、接口形式

D、配置化

49.Main组件是整个系统中的一个(),它处于整洁架构的最外圈,主要负责为系统加载所有必要的信

息,然后再将控制权转交回系统的高层组件。[单选题]

A、底层模块V

B、上层模块

C、边沿模块

D、底层实现

50.在所有的系统中,都至少要有一个组件来负责()其他组件的运转。我们将其称为Main组件。[单

选题]

A、创建、协调、监督V

B、创建、协调、监控

C、创建、协调、监视

D、创建、调度、监督

51.Mai口组件是系统中最细节化的部分一也就是底层的策略,它是整个系统的()[单选题]

A、初始点V

B、起始点

C、出发点

D、终点

52.软件架构设计按照策略彼此分离组件时,()()和()应该被分到同一个组件中。()[多选题]

A、变更原因V

B、变更地点

C、时间V

D、层次相同的策略V

53.变更原因和变更时间相同的策略应在哪两个原则的指导下合并为同一组件。()[多选题]

A、SRPV

B、REP

C、CCPV

D、SAP

54.关于业务实体说法正确的有()[多选题]

A、业务实体是包含了一系列用于操作关键数据的业务逻辑的计算机系统中的对象V

B、业务实体对象直接包含了关键业务数据。

C、业务实体对象可以较容易的访问关键业务数据。

D、业务实体的接口层由实现关键业务逻辑、操作关键业务数据的函数组成V

55.按照架构设计出来的系统通过具有哪些特点()[多选题]

A、可被测试V

B、独立于UW

C、独立于框架V

D、独立于数据库V

E、独立于仰可外部机构V

56.架构通常包括哪些层级()[多选题]

A、框架与驱动程序V

B、接口适配器V

C、用例V

D、业务实体V

57.应用程序所能控制的、要在屏幕上显示的一切东西,都应该在视图模型中以哪些形式存在()[多选

题]

A、字符串V

B、布尔值V

C、任意值

D、枚举值V

58.对于用例交互器(interactor)与数据库中间的组件,我们通常称之为数据库网关这些数据库网关

本身是一个多态接口,包含了应用程序在数据库上所要执行的以下哪些操作[)[多选题]

A、创建V

B、读取V

C、更新V

D、删除V

59.构建不完全边界的方式包含以下哪几种()[多选题]

A、谦卑对象模式

B、省掉最后一步V

C、策略模式V

D、门户模式V

6O.Main组件是指系统中来负责—其他组件的运?转()[多选题]

A、创建V

B、协调V

C、监督V

D、维持

61.Main组件的任务是创建______并最终将系统的控制权转交给最高抽象层的代码来处理()[多选

A、工厂类V

B、策略类V

C、全局设施V

D、中间件

62.关于谦卑对象模式描述正确的是()[多选题]

A、谦卑对象模式就是为了帮助单元测试的编写者区分容易测试的行为与难以测试的行为V

B、展示器实际上是采用谦卑对象模式的一种形式V

C、谦卑对象模式本质上就是一个设计模式

D、谦卑对象模式是一种软件设计概念V

63.架构师怎么应对边界问题()[多选题]

A、判断未来哪里有可能需要设置架构边界V

B、需决定应该已完全形式还是不完全形式来实现它们V

C、尽量把代码抽象化来应对将来可能存在的需求

D、使用单向边界与门户模式

64.谦卑对象模式初的设计目的是帮助单元测试的编写者区分()的行为与()的行为,并将它们隔离

()[多选题]

A、难以测试V

B、简单测试

C、容易测试V

D、复杂测试

65.利用谦卑对象模式将GUI的这两种行为拆分成()与()[多选题]

A、业务逻辑

B、展示器V

C、视图V

D、界面

66.数据库网关通常可以被替换成对应的()和()[多选题]

A、测试替身类V

B、测试桩V

C、测试数据

D、测试模拟

67.谦卑对象通常具有以下特点()[多选题]

A、简单行V

B、可扩展性V

C、易用性

D、灵活性V

68.构建不完全边界的种方式就是在将系统分割成一系列可以(\()组件之后,再把它们构建成一个

组件()[多选题]

A、独立开发

B、独立编译V

C、独立部署V

D、独立测试

69.构建不完全边界有以下几种解决方案()[多选题]

A、分离组件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论