问答题
 采用该设计模式的原因在于:系统解析BMP、GIF与JPEG文件的代码仅与文件格式相关,而在屏幕上显示像素矩阵的代码则仅与操作系统相关。
  【C++代码】
  class Matrix{   //各种格式的文件最终都被转化为像素矩阵
  //此处代码省略
  };
  class ImageImp{
  public:
  virtual void doPaint(Matrix m) = 0;    //显示像素矩阵m
  };
  class WinImp : public ImageImp{
  public:
  void doPaint(Matrix m){ /*调用windows系统的绘制函数绘制像素矩阵*/ }
  };
  class LinuxImp : public ImageImp{
  public:
  void doPaint(Matrix m){ /*调用Linux系统的绘制函数绘制像素矩阵*/  }
  };
  class Image {
  public:
  void setImp(ImageImp *imp){   (1)      = imp;}
  virtual void parseFile(string fileName) = 0;
  protected:
  (2)      *imp;
  };
  class    BMP : public Image{
  public:
  void parseFile(string fileName){
  //此处解析BMP 文件并获得一个像素矩阵对象m
  (3)    ;// 显示像素矩阵m
  }
  };
  class    GIF : public Image{
  //此处代码省略
  };
  class    JPEG : public Image{
  //此处代码省略
  };
  void main(){
  //在windows操作系统上查看demo.bmp图像文件
  Image *image1 =     (4)    ;
  ImageImp *imageImp1 =     (5)    ;
  (6)    ;
  image1->parseFile("demo.bmp");
  }
  现假设该系统需要支持10种格式的图像文件和5种操作系统,不考虑类Matrix,若采用桥接设计模式则至少需要设计(7)个类。
  采用该设计模式的原因在于:系统解析BMP、GIF与JPEG文件的代码仅与文件格式相关,而在屏幕上显示像素矩阵的代码则仅与操作系统相关。
  【C++代码】
  class Matrix{   //各种格式的文件最终都被转化为像素矩阵
  //此处代码省略
  };
  class ImageImp{
  public:
  virtual void doPaint(Matrix m) = 0;    //显示像素矩阵m
  };
  class WinImp : public ImageImp{
  public:
  void doPaint(Matrix m){ /*调用windows系统的绘制函数绘制像素矩阵*/ }
  };
  class LinuxImp : public ImageImp{
  public:
  void doPaint(Matrix m){ /*调用Linux系统的绘制函数绘制像素矩阵*/  }
  };
  class Image {
  public:
  void setImp(ImageImp *imp){   (1)      = imp;}
  virtual void parseFile(string fileName) = 0;
  protected:
  (2)      *imp;
  };
  class    BMP : public Image{
  public:
  void parseFile(string fileName){
  //此处解析BMP 文件并获得一个像素矩阵对象m
  (3)    ;// 显示像素矩阵m
  }
  };
  class    GIF : public Image{
  //此处代码省略
  };
  class    JPEG : public Image{
  //此处代码省略
  };
  void main(){
  //在windows操作系统上查看demo.bmp图像文件
  Image *image1 =     (4)    ;
  ImageImp *imageImp1 =     (5)    ;
  (6)    ;
  image1->parseFile("demo.bmp");
  }
  现假设该系统需要支持10种格式的图像文件和5种操作系统,不考虑类Matrix,若采用桥接设计模式则至少需要设计(7)个类。
