试题五
阅读下列说明和 C++代码,将应填入( )处的字句写在答题纸的对应栏内。 【说明】
某图像预览程序要求能够查看BMP 、JPEG和GIF三种格式的文件,且能够Windows和Linux两种操作系统上运行程序需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,现采用桥接(Bridge)模式进行设计,得到如图5-1所示的类图。
【问题1】 【C++代码】 #include
#include<:string> ; Using namespace std;
class Matrix{//各种格式的文件最终都被转化为像素矩阵
//此处代码省略 };
class Implementor{ public:
(1);显示像素矩阵 m };
class WinImp:public Implementor{
public:
Viod doPaint(Matrix m){
/*调用Windows系统的绘制函数绘制像素矩阵*/
};
class LinuxImp:public Implementor{/*调用Linux系统的绘制函数绘制像素矩阵*/} };
class Image{
public:
viod setImp(Implement*imp)?{this->imp=imp;} Virtual viod parseFile(string fileName)=0 protected: Implementor*imp; };
class BMPImage:public Image{
//此处省略代码 };
class GIFImage:public Image{
Public:
viod parseFile(string fileName) { //此处解析GIF文件并获得一个像素矩阵对象m (2);显示像素矩阵m }
};
class JPEGImage:public Image{
//此处代码省略
};
int main(){
//在linux操作系统上查看demo.gif图像文件 Image*image=(3);
Implementor*imageImp=(4); (5)
Image->parseFile(〝demo.gif〝); return 0; }
1.virtual void doPaint(Matrix m) = 0 2. imp->doPaint(m) 3. new GIFImage() 4. new LinuxImp()
5. image->setImp(imageImp)
试题六
阅读下列说明和Java代码,将应填入一且上一处的字句写在答题纸的对应栏内。 【说明】
某图像预览程序要求能够查看BMP 、JPEG和GIF三种格式的文件,且能够在Windows和Linux两种操作系统上运行。程序需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,现采用桥接模式进行设计,得到如图6-1所示的类图。
【问题1】 【Jave代码】 Import java.util.*;
class Matrix{ //各种格式的文件最终都被转化为像素矩阵
//此处代码省略 };
abstract class Implementor{
Public(1);//显示像素矩阵 m };
class WinImp extends Implementor{
public void doPaint(Matrix m){ //调用 Windows 系统的绘制函数绘制像素矩阵 } };
class LinuxImp extends Implementor{
public void doPaint(Matrix m){ //调用 Linux 系统的绘制函数绘制像素矩阵
} };
abstract class Image{
public void setImp(Implementor imp){ this.imp= imp; } public abstract void parseFile(String fileName); protected Implementor imp; };
class BMPImage extends Image{
//此处代码省略 };
class GIFImage extends Image{
public void parseFile(String fileName) { //此处解析BMP文件并获得一个像素矩阵对象m (2);//显示像素矩阵m } };
Class Main{
Public static viod main(String[]args){ //在Linux操作系统上查看demo.gif图像文件 Image image=(3)
Implementor imageImp=(4) (5)
Image.parseFile(〝demo.gif〝); } }
1.abstract void doPaint(Matrix m)