早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】现欲实现一个图像浏览

题目

阅读下列说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。

【说明】

现欲实现一个图像浏览系统,要求该系统能够显示BMP、JPEG和GIF三种格式的文件,并且能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG和GIF三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,采用桥接(Bridge)设计模式进行设计所得类图如图5—7所示。采用该设计模式的原因在于:系统解析BMP、GIF与JPEG文件的代码仅与文件格式相关,而在屏幕上显示像素矩阵的代码则仅与操作系统相关。

【Java代码】

class Matrix{//各种格式的文件最终都被转化为像素矩阵

//gt处代码省略

};

abstract class ImageImp{

public abstract void doPaint(Matrix m); //显示像素矩阵m

};

class WinImp extends ImageImp{

public void doPaint(Matrix m){/*调用windows系统的绘制函数绘制像素矩阵*/}

};

class LinuxImp extends ImageImp{

public void doPaint(Matrix m){/*调用Linux系统的绘制函数绘制像素矩阵*/}

};

abstract class Image{

public void setImp(ImageImp imp){(1) =imp;}

public abstract void parseFile(String fiieName);

protected (2) imp;

};

class BMP extends Image{

public void parseFile(String fiieName){

//此处解析BMP文件并获得一个像素矩阵对象m(3) ;//显示像素矩阵m

}

};

classGIF extends Image{

//此处代码省略

};

class JPEG extends Image{

//此处代码省略

};

publ.ic class j avaMain{

public static v。id main (string[]args) {

//在windows操作系统上查看demO.bmp图像文件

Image imagel= (4) ;

ImageImp imageImpl= (5) ,(6鱼) ;

imagel.parseF’ile(“demo.bmp”);

}

}

现假设该系统需要支持10种格式的图像文件和5种操作系统,不考虑类Matrix和类ja.vaMain,若采用桥接设计模式则至少需要设计 (7) 个类。

参考答案
正确答案:(1)this.imp(2)ImageImp(3)imp.doPaint(m)(4)newBmp()(5)new WinImp()(6)imagel.setImp(imageImpl)(7) 17
(1)this.imp(2)ImageImp(3)imp.doPaint(m)(4)newBmp()(5)new WinImp()(6)imagel.setImp(imageImpl)(7) 17 解析:根据题目描述,在设计该图像显示系统时主要分为两个步骤:一是读取各种文件并将文件内容转换为像素矩阵,因为各种图片格式不同,所以需要针对每一种图片格式编写文件读取代码,而该代码与操作系统平台无关。将像素矩阵显示到屏幕上时,由于和操作系统相关,因此需要把该代码和读取文件代码相分离。设计中的Image类表示抽象的图像概念,image类中就包含了读取文件接口和设置实现平台接口:Image的子类BMP,GIF和JPEG分别负责读取各种不同格式的文件;Imagelmp的主要任务是将像素矩阵显示在屏幕上,因此,它存在两个子类,分别实现Windows系统和IJnux系统上的图像显示代码。空缺(1)处主要是设置将在哪个平台上进行实现,因此该处应该存储参数所传递的对象,由于该类的成员变量也是imp,与参数相同,因此需要填写this.imp;同理,该成员变量的类型和参数的类型应该保持相同,空(2)处应该填写Imagelmp;空(3)处需要根据imp成员变量存储的实现对象来显示图像。在空(4)处需要生成一个BMP对象;由于需要在Win.dows平台上实现,因此空(5)处需要生成一个WinImp对象,同时,还需设置该BMP对象,应采用WinImP对象来实现显示。采用桥接模式能够将文件分析代码和图像显示代码分解在不同的类层次结构中,如果不考虑中间使用的Matrix等类,那么最后需要设计的类包括两个父类,对应文件格式数目的子类,对应操作系统数目的平台类,因此10种图像格式和5种操作系统需要17个类。
看了阅读下列说明和Java代码,将...的网友还看了以下:

小明欲证明二氧化锰在双氧水的分解反应中起催化作用,该物质在反应前后质量是否发生变化,做了如图实验. 化学 2020-05-13 …

请问关于“欲济无舟楫,端居耻圣明.”欲济无舟楫,端居耻圣明.坐观垂钓者,徒有羡鱼情.这两句诗的用途 语文 2020-05-21 …

(20分)阅读下列材料:材料一:道常无为而无不为。侯王基能守之,万物将自化。化而欲作,吾将镇之以无 历史 2020-06-17 …

阅读下面的《三国演义》选段,回答问题。却说孔明欲斩云长,玄德曰:“昔吾三人结义时,誓同生死。今云长 语文 2020-06-19 …

“人心本自乐,自将私欲缚。私欲一萌时,良知还自觉。一觉便消除,人心依旧乐。”这首古诗反映了()A. 历史 2020-06-26 …

8.古代湖南本土著名文学家文学家朝代籍贯三国丞阳(今衡阳)南朝作唐(今安乡)隋唐澧州(澧县)唐邵阳两 其他 2020-11-12 …

山东省第二十三届运动会将于2014年9月16日在济宁开幕,本次省运会的口号为“人文济宁,精彩省运”. 语文 2020-11-13 …

阅读下列材料:材料一:道常无为而无不为。侯王基能守之,万物将自化。化而欲作,吾将镇之以无各之朴。镇之 历史 2020-11-23 …

(2007哈尔滨)阅读下列材料:材料一道常无为而无不为。侯王若能守之,万物将自化。化而欲作,吾将镇之 历史 2020-11-23 …

英语翻译王敦既下,住船石头,欲有废明帝意.宾客盈坐,敦知帝聪明,欲以不孝废之.每言帝不孝之状,而皆云 语文 2020-12-26 …