Adapter
// LegacyRectangle.h
#ifndef _LEGACYRECTANGLE_H
#define _LEGACYRECTANGLE_H
class LegacyRectangle {
public:
void draw();
LegacyRectangle(int x1, int y1, int x2, int y2);
};
#endif
說明:
- 設計新類別改變原類別定義。
- LegacyRectangle 類別由 2 組座標所定義。
- AdapterRectangle 類別由左上角座標與長寬所定義。
- 內部生成 LegacyRectangle 物件。
- Client 調用 AdapterRectangle 物件。
// AdapterRectangle.h
#ifndef _ADAPTERRECTANGLE_H
#define _ADAPTERRECTANGLE_H
#include "Rectangle.h"
class LegacyRectangle;
class AdapterRectangle : public Rectangle {
private:
LegacyRectangle * ;
public:
void draw();
AdapterRectangle(int x, int y, int width, int length);
};
#endif