现欲实现一个图像浏览系统,要求该系统能够显示BMP、JPEG和GIF三种格式的文件,并且能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG和GIF三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性以支持新的文件格式和操作系统
public abstract class Image { //抽象类
protected ImageImp imageImp;
public void setImp(ImageImp imageImp){
this.imageImp=imageImp;
}
public abstract void op();
}
public interface ImageImp { //实现类接口
void doPaint();
}
//扩展抽象类
public class WinImp implements ImageImp{
@Override
public void doPaint() {
System.out.println("这个是在win系统的展示");
}
}
public class LinuxImp implements ImageImp{
@Override
public void doPaint() {
System.out.println("这是在Linux系统的展示");
}
}
//具体实现类
public class BMP extends Image{
@Override
public void op() {
System.out.println("一个BMP的格式文件");
imageImp.doPaint();
}
}
public class JPEG extends Image{
@Override
public void op() {
System.out.println("一个JPEG的格式文件");
imageImp.doPaint();
}
}
public class GIF extends Image{
@Override
public void op() {
System.out.println("一个GIF的格式文件");
imageImp.doPaint();
}
}
//客户端类
public class Client {
public static void main(String[] args) {
ImageImp imageImp=new LinuxImp(); //测试在Linux上的BPM格式
Image image=new BMP();
image.setImp(imageImp);
image.op();
}
}



