第1题
A.标准化
B.简单性
C.适用性
D.唯一性
第2题
【说明】
有时我们希望给某个对象而不是整个类添加一些功能。例如,一个图形用户界面工具箱允许你对任意一个用户界面组件添加一些特性,例如边框,或是一些行为,例如窗口滚动。使用继承机制是添加功能的一种有效途径,从其他类继承过来的边框特性可以被多个子类的实例所使用。但这种方法不够灵活,因为边框的选择是静态的,用户不能控制对组件加边框的方式和时机。
一种较为灵活的方式是将组件嵌入另一个对象中,由这个对象添加边框。我们称这个嵌入的对象为装饰。这个装饰与它所装饰的组件接口一致,因此它对使用该组件的客户透明。它将客户请求转发给该组件,并且可能在转发前后执行一些额外的动作(例如画二个边框)。透明性使得你可以递归地嵌套多个装饰,从而可以添加任意多的功能。
装饰对象结构模式的意图就是动态地给一个对象添加一些额外的职责。就增加功能来说,该模式相比生成子类更为灵活。其示意类图如图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));
}
第3题
在UML中用5种不同的视图来表示一个系统,这些视图从不同的侧面描述系统。每一个视图由一组图形来定义。这些视图概述如下:
(11)用使用实例(use case)来建立模型,并用它来描述来自终端用户方面的可用的场景。
(12)对静态结构(类、对象和关系)模型化。
(13)描述了在用户模型视图和结构模型视图中所描述的各种结构元素之间的交互和协作。
(14)将系统的结构和行为表达成为易于转换为实现的方式。
(15)表示系统实现环境的结构和行为。
可供选择的答案:
A.环境模型视图
B.实现模型视图
C.结构模型视图
D.行为模型视图
E.用户模型视图
第4题
在UML中用5种不同的视图来表示一个系统,这些视图从不同的侧面描述系统。每一个视图由一组图形来定义。这些视图概述如下:
(8) 用使用实例(use case)来建立模型,并用它来描述来自终端用户方面的可用的场景。
(9) 对静态结构(类、对象和关系)模型化。
(10) 描述了在用户模型视图和结构模型视图中所描述的各种结构元素之间的交互和协作。
(11) 将系统的结构和行为表达成为易于转换为实现的方式。
(12) 表示系统实现环境的结构和行为。
(8) ~(10) A.环境模型视图
B.行为模型视图
C.用户模型视图
D.结构模型视图
(11) ,(12) A.环境模型视图
B.实现模型视图
C.结构模型视图
D.行为模型视图
第7题
A.事件是一种预先定义好的特定的动作,由用户或系统激活
B.VisualFoxPro基类的事件集合是由系统预先定义好后,是唯一的
C.VisualFoxPro基类的事件也可以由用户创建
D.可以激活事件的用户动作有按键、单击鼠标、移动鼠标等
第8题
A.事件是一种预先定义好的特定的动作,由用户或系统激活
B.VFP基类的事件集合是由系统预先定义好后,b是惟一的
C.VFP基类的事件也可以由用户创建
D.可以激活事件的用户动作有按键、单击鼠标、移动鼠标等
第10题
A.不允许为快捷方式建立快捷方式
B.一个对象可以有多个快捷方式
C.一个快捷方式可以指向多个对象
D.只有文件可以建立快捷方式
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!