当前位置:中级软件设计师题库>面向对象技术题库

问题:

[单选] 欲动态地给一个对象添加职责,宜采用()模式。

A . 适配器(Adapter)
B . 桥接(BridgE.
C . 组合(CompositE.
D . 装饰器(Decorator)

与蛋白质结合的药物和血浆中的全部药物的比例,称血浆蛋白质结合率β。() ()模式通过提供与对象相同的接口来控制对这个对象的访问。 适配器(Adapter)。 代理(Proxy)。 组合(Composite)。 装饰器(Decorator)。 不稳定晶型、亚稳定晶型、无定型药物溶出快、吸收好。() 采用面向对象开发方法时,对象是系统运行的基本实体。以下关于对象的叙述中,正确的是() 对象只能包括数据(属性)。 对象只能包括操作(行为)。 对象一定有相同的属性和行为。 对象通常由对象名、属性和操作三个部分组成。 阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。说明:设某一机器由n个部件组成,每一个部件都可以从m个不同的供应商处购得。供应商j供应的部件i具有重量Wij和价格Cij。设计一个算法,求解总价格不超过上限cc的最小重量的机器组成。采用回溯法来求解该问题。首先定义解空间。解空间由长度为n的向量组成,其中每个分量取值来自集合{1,2,…,m},将解空间用树形结构表示。接着从根节点开始,以深度优先的方式搜索整个解空间。从根节点开始,根节点成为活节点,同时也成为当前的扩展节点。向纵深方向考虑第一个部件从第一个供应商处购买,得到一个新节点。判断当前的机器价格(C11)是否超过上限(cc),重量(W11)是否比当前已知的解(最小重量)大,若是,应回溯至最近的一个活节点;若否,则该新节点成为活节点,同时也成为当前的扩展节点,根节点不再是扩展节点。继续向纵深方向考虑第二个部件从第一个供应商处购买,得到一个新节点。同样判断当前的机器价格(C11+C21)是否超过上限(cc),重量(W11+W21)是否比当前已知的解(最小重量)大。若是,应回溯至最近的一个活节点;若否,则该新节点成为活节点,同时也成为当前的扩展节点,原来的节点不再是扩展节点。以这种方式递归地在解空间中搜索,直到找到所要求的解或者解空间中已无活节点为止。C代码:下面是该算法的C语言实现。(1)变量说明n:机器的部件数。m:供应商数。cc:价格上限。w[][]:二维数组,w[i][j]表示第j个供应商供应的第i个部件的重量。c[][]:二维数组,c[i][j]表示第j个供应商供应的第i个部件的价格。bestW:满足价格上限约束条件的最小机器重量。bestC:最小重量机器的价格。bestX[]:最优解,一维数组,bestX[i]表示第i个部件来自哪个供应商。cw:搜索过程中机器的重量。cp:搜索过程中机器的价格。x[]:搜索过程中产生的解,x[i]表示第i个部件来自哪个供应商。i:当前考虑的部件,从0到n-1。j:循环变量(2)函数backtrack 欲动态地给一个对象添加职责,宜采用()模式。
参考答案: D

  参考解析

适配器(Adapter)、桥接(Bridge)、组合(Composite)、装饰器(Decorator)都是结构型设计模式,用于处理类或对象的组合。适配器使得一个接口与其他接口兼容,从而给出了多个不同接口的统一抽象;桥接模式将对象的抽象和其实现分离;组合模式描述了如何构造一个类层次式结构;装饰器模式描述了如何动态地为对象添加职责。

相关题目:

在线 客服