题目内容 (请给出正确答案)
[单选题]

装饰器 (Decorator) 模式用于 ();外观 (Facade) 模式用于()。①将一个对象加以包装以给客户提供其希望的另外一个接口②将一个对象加以包装以提供一些额外的行为③将一个对象加以包装以控制对这个对象的访问④将一系列对象加以包装以简化其接口

A.①

B.②

C.③

D.④

查看答案
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“装饰器 (Decorator) 模式用于 ();外观 (Fa…”相关的问题

第1题

装饰器 (Decorator) 模式用于( );外观 (Facade) 模式用于( )。 ①将一个对象加以包装以给客户提供其希望的另外一个接口 ②将一个对象加以包装以提供一些额外的行为 ③将一个对象加以包装以控制对这个对象的访问 ④将一系列对象加以包装以简化其接口

A.①B.②C.③D.④A.①B.②C.③D.④

点击查看答案

第2题

A.①

B.②

C.③

D.④

点击查看答案

第3题

● 已知某子系统为外界提供功能服务,但该子系统中存在很多粒度十分小的类,不便被外界系统直接使用,采用(41)设计模式可以定义一个高层接口,这个接口使得这一子系统更加容易使用;当不能采用生成子类的方法进行扩充时,可采用(42)设计模式动态地给一个对象添加一些额外的职责。

(41)

A. Facade(外观)

B. Singleton(单件)

C. Participant(参与者)

D. Decorator(装饰)

(42)

A. Facade(外观)

B. Singleton(单件)

C. Participant(参与者)

D. Decorator(装饰)

点击查看答案

第4题

已知某子系统为外界提供功能服务,但该子系统中存在很多粒度十分小的类,不便被外界系统直接使用,采用(41)设计模式可以定义一个高层接口,这个接口使得这一子系统更加容易使用;当不能采用生成子类的方法进行扩充时,可采用(42)设计模式动态地给一个对象添加一些额外的职责。

A.Facade(外观)

B.Singleton(单件)

C.Participant(参与者)

D.Decorator(装饰)

点击查看答案

第5题

关于模式适用性,在以下情况不适合使用DECORATOR(装饰)模式?()

A. 在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责

B. 处理那些可以撤消的职责

C. 客户程序与抽象类的实现部分之间存在着很大的依赖性

D. 当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类

点击查看答案

第6题

装饰器 (Decorator) 模式用于()
①将一个对象加以包装以给客户提供其希望的另外一个接口
②将一个对象加以包装以提供一些额外的行为
③将一个对象加以包装以控制对这个对象的访问
④将一系列对象加以包装以简化其接口
A.①

B.②

C.③

D.④

点击查看答案

第7题

下列设计模式中,( )模式既是类结构型樽式,又是对象结构型模式。此模式与( )模式类似的特征是,都给另一个对象提供了一定程度上的间接性,都涉及到从自身以外的一个接口向这个对象转发请求。

A.桥接(Bridge) B.适配器(Adapter) C.组成(Composite) D.装饰器 (Decorator) A.桥接(Bridge) B.适配器(Adapter) C.组成(Composite) D.装饰器 (Decorator)

点击查看答案

第8题

●欲动态地给一个对象添加职责,宜采用 (43)模式。

(43)

A.适配器(Adapter)

B.桥接(Bridge)

C.组合( Composite)

D.装饰器(Decorator)

点击查看答案

第9题

阅读以下说明和C++程序代码,将程序填充完整。

【说明】

有时我们希望给某个对象而不是整个类添加一些功能。例如,一个图形用户界面工具箱允许你对任意一个用户界面组件添加一些特性,例如边框,或是一些行为,例如窗口滚动。使用继承机制是添加功能的一种有效途径,从其他类继承过来的边框特性可以被多个子类的实例所使用。但这种方法不够灵活,因为边框的选择是静态的,用户不能控制对组件加边框的方式和时机。

一种较为灵活的方式是将组件嵌入另一个对象中,由这个对象添加边框。我们称这个嵌入的对象为装饰。这个装饰与它所装饰的组件接口一致,因此它对使用该组件的客户透明。它将客户请求转发给该组件,并且可能在转发前后执行一些额外的动作(例如画二个边框)。透明性使得你可以递归地嵌套多个装饰,从而可以添加任意多的功能。

装饰对象结构模式的意图就是动态地给一个对象添加一些额外的职责。就增加功能来说,该模式相比生成子类更为灵活。其示意类图如图13-22所示。

程序代码13-5是该模式的一个示例,说明了如何实现用户接口装饰,函数的实现全部省略。程序中定义了VisualComponent的一个子类Decorator,我们将生成Decorator的子类以获取不同的装饰。VisualComponent类是一个描述可视对象的抽象类,它描述了绘制和事件处理的接口。Decorator的子类定义了特殊的装饰功能,BorderDecorator子类给可视组件添加一个边框,ScrollDecorator给可视组件添加滚动功能。

【程序代码13-5】

(1);

class Window

{

public:

roid SetContents (VisualComponent * contents);

};

//VisualComponent类是一个描述可视对象的抽象类

class VisllalComponent

{

public:

VisualComponent(){};

(2) void Draw(){};

Virtual void Resize(){};

};

class Decorator:public VisualComponent

{

public:

Decorator()

{

//…

};

Decorator(VisualComponent * vcom)

{

//…

};

virtual vold Draw();

virtual vold Resize();

private:

/* Decorator装饰由VisualComponent的指针实现,其在Decorator的构造函数中初始化*/

VisualComponent (3) ;

};

vold Decorator::Draw()

{

(4);//缺省实现

}

void Decorator::Resize()

{

component->Resize();//缺省实现

}

//BorderDecorator 子类为它所包含的组件添加一个边框

class BorderDecorator:public Decorator

{

public:

BorderDecorator(VisualComponent * vcom,int borderWidth)

{

//…

};

Virtual Void Draw();

private:

void DrawBorder(int);

private:

int borderWidth;

};

void BorderDecorator::Draw()

{

Decorator::Draw();

DrawBorder(_width);

}

Void BorderDecorator::DrawBorder(int Width)

{

//…

)

Void Window::SetConterlts(VlsualComponent * contents)

{

//…

}

//SerollDecorat 给可视组件添加滚动功能

class ScroliDecoratOr:public Decorator

{

public:

ScrollDecorator(VlsualComponent * vcom)

{

//…

};

//…

);

class TextView:public VisualComponent

{

//…

};

void main(void)

{

//创建一个正文视图以及放入这个正文视图的窗口

Window * window=new Window;

TcxtView * textView=new TextView;

//TextView是一个VisualComponent,它可以放入窗口中

window->SetContents(textView);

//得到一个有边界的和可以滚动的TextView,边界宽为1

window->SetContents((5));

}

点击查看答案

第10题

将一个接口转换成为客户想要的另一个接口,宜采用(46)模式。

A.适配器(Adapter)

B.桥接(Bridge)

C.组合( Composite)

D.装饰器(Decorator)

点击查看答案
热门考试 全部 >
相关试卷 全部 >
账号:
你好,尊敬的上学吧用户
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
上学吧
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
上学吧
点击打开微信