Adapter Design pattern converts the interface of a class into another interface that clients expect.
#include
using namespace std;
class Circle
{
public:
virtual void draw() = 0;
};
class StandardCircle
{
public:
StandardCircle(double radius)
{
radius_ = radius;
cout << "StandardCircle: create. radius = "<< radius_ << endl;
}
private:
double radius_ ;
};
class CAdapter : public Circle, private StandardCircle
{
public:
CAdapter( double diameter)
: StandardCircle(diameter/2)
{
cout << "CAdapter: create. diameter = " << diameter << endl;
}
virtual void draw()
{
cout << "CAdapter: draw." << endl;
oldDraw();
}
};
int main()
{
Circle* c = new CAdapter(14);
c->draw();
}
No comments:
Post a Comment