首页
登录
从业资格
现欲实现一个图像浏览系统,要求该系统能够显示BMP、JPEG和GIF三种格式的文
现欲实现一个图像浏览系统,要求该系统能够显示BMP、JPEG和GIF三种格式的文
考试题库
2022-08-02
60
问题
现欲实现一个图像浏览系统,要求该系统能够显示BMP、JPEG和GIF三种格式的文件,并且能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG和GIF三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,采用桥接(Bridge)设计模式进行设计所得类图如图7-1所示
采用该设计模式的原因在于:系统解析BMP、GIF与JPEG文件的代码仅与文件格式相关,而在屏幕上显示像素矩阵的代码则仅与操作系统相关。【Java代码】class Matrix{//各种格式的文件最终都被转化为像素矩阵//此处代码省略};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 fileName);protected(2)imp;};class BMP extends Image{public void parseFile(String fileName){//此处解析BMP文件并获得一个像素矩阵对象m(3);//显示像素矩阵m}};class?GIF extends Image{//此处代码省略};class?JPEG extends Image{//此处代码省略};public class javaMain{public static void main(string[]args){//在windows操作系统上查看demo.bmp图像文件Image image1=(4);ImageImp?imageImp1=(5);(6);Image1.parseFile(“demo.bmp”);}}现假设该系统需要支持10种格式的图像文件和5种操作系统,不考虑类Matrix,若采用桥接设计模式则至少需要设计(7)个类。
选项
答案
解析
(1)this.imp
(2)ImageImp
(3)imp.doPaint(m)
(4)new?BMP()
(5)new?WinImp()
(6)image1.setImp(imageImp1)
(7)17
根据题目描述,在设计该图像显示系统时主要分为两个步骤:一是读取各种文件并将文件内容转换为像素矩阵,因为各种图片格式不同,因此需要针对每一种图片格式编写文件读取代码,而该代码与操作系统平台无关。将像素矩阵显示到屏幕上时,由于和操作系统相关,因此需要把该代码和读取文件代码相分离。设计中的Image类表示抽象的图像概念,Image类中就包含了读取文件接口和设置实现平台接口;Image的子类BMP、GIF和JPEG分别负责读取各种不同格式的文件;Imagelmp的主要任务是将像素矩阵显示在屏幕上,因此,它存在两个子类,分别实现Windows系统和Linux系统上的图像显示代码。空缺(1)处主要是设置将在哪个平台上进行实现,因此该处应该存储参数所传递的对象,由于该类的成员变量也是imp,与参数相同,因此需要填写this.imp;同理,该成员变量的类型和参数的类型应该保持相同,空(2)处应该填写ImageImp;空(3)处需要根据imp成员变量存储的实现对象来显示图像;在空(4)处需要生成一个BMP对象;由于需要在Windows平台上实现,因此空(5)处需要生成一个WinImp对象,同时,还需设置该BMP对象,应采用WinImp对象来实现显示。采用桥接模式能够将文件分析代码和图像显示代码分解在不同的类层次结构中,如果不考虑中间使用的Matrix等类,那么最后需要设计的类包括2个父类,对应文件格式数目的子类,对应操作系统数目的平台类,因此10种图像格式和5种操作系统需要17个类。
转载请注明原文地址:https://tihaiku.com/congyezige/2409848.html
本试题收录于:
中级 软件设计师题库软件水平考试初中高级分类
中级 软件设计师
软件水平考试初中高级
相关试题推荐
某销售公司需开发数据库应用系统管理客户的商品购买信息。该系统需记录客户的姓名、出
某医疗护理机构为老年人或有护理需求者提供专业护理。现欲开发一基于Web的医疗管理
某医院住院部信息系统中有病人表R(住院号,姓名,性别,科室号,病房,家庭住址),
若系统使用频度最高的查询语句为 SELECT* FROMSC WHERE
若系统正在将( )文件修改的结果写回磁盘时系统发生崩溃,则对系统的影响相对较大
设置日志文件的目的不包括( )A.事务故障恢复 B.系统故障恢复 C.介质
在数据库系统运行维护阶段,通过重建视图能够实现( )A.程序的逻辑独立性 B
在数据库系统运行中,经常会找出频繁执行的SQL语句进行优化。常见的优化策略有:尽
在数据库应用系统的体系结构中,常用的是C/S(客户机/服务器)结构和B/S(浏览
在数据库应用系统开发过程中,常采用( )来实现对数据库的更新操作,其内部以事务
随机试题
Theyareoverlapsandgapsinwordmeanings.Gapsin【S1】______meaningcanb
YourLifeTheirHandsAOnbenchesinparks,youcanb
Thedestructionofournaturalresourcesandcontaminationofourfoodsuppl
国家助学贷款存在哪些金融风险?()A.信贷风险 B.利率风险 C.政策风险
图示左侧电路的等效电路是哪个电路?
《安全生产许可证条例》规定了安全生产许可证的有效期是()年。A.1 B.2
患者,女,60岁。左侧舌缘中部溃烂5个月,约2.3cm×1.5cm×0.5cm大
明挖法施工车站顶板和楼板可采用的形式中不包括()。A.密肋板 B.双向板
水泥包装袋两侧应根据水泥的品种采用不同的颜色印刷水泥名称和强度等级,硅酸盐水泥采
《建设工程质量管理条例》规定,必须实行监理的建设工程有()。A.国家重点建设工
最新回复
(
0
)