通俗理解是将一个类分成父类和子类方式, 并提取一些公共属性和方法放在父类, 这样将来有新的变化, 只需增加一个子类即可;
一. 已存在的类,将要被适配者
// class XCircle
{
public:
XCircle()
{
cout<<"我是XCircle\n";
}
void DisplayIT()
{
cout<<"显示一个圆\n";
}
};
二. 改造后的类,新成 父类和子类
//父类, 抽象类
class CShape
{
public:
virtual void Display() = 0;
};
//子类1,借用原先的类的函数
// 因为XCircle已经实现了显示圆的操作,所以我们不用重新实现了,拿来用一下
class CCircle : public CShape
{
public:
CCircle()
{
cout<<"我是CCircle\n";
}
virtual void Display()
{
cout<<"CCircle借用一下XCircle的显示操作:\n";
_xc.DisplayIT();
}
private:
XCircle _xc;
};
//子类2,将原先类替换成子类, 并改造一下
class CCircle : public CShape
{
public:
CCircle()
{
cout<<"我是CCircle\n";
}
virtual void Display()
{
cout<<"显示一个圆\n"; //将原先的函数东西拷贝进来...
}
};