桥接模式
试题六(桥接模式)
阅读下列说明和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)
2.imp.doPaint(m)
3.new GIFImage()
4.new LinuxImp()
5.image.setImp(imageImp)
策略类
试题六(策略类)
【说明】
某大型购物中心欲开发一套收银软件,要求其能够支持购物中心在不同时期推出的各种促销活动,如打折、返利(例如,满300返100)等等。现采用策略( Strategy)模式实现该要求,得到如图6-1所示的类图。
网络异常,图片无法展示
|
网络异常,图片无法展示
|
(1) double acceptCash(double money)
(2) cs=new CashNormal()
(3) cs=new CashReturn(300,100)
(4) cs=new CashDiscount(0.8)
(5) return cs.acceptCash(money)
组合模式
试题六(组合模式)
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内- 【说明】
现欲构造一文件/目录树,采用组合(Composite)设计模式来设计,得到的类图如下图所示:
网络异常,图片无法展示
|