設計モードのアダプタ、C++実現
1093 ワード
みんなはもっと使うべきで、コードだけをつけます
// AdapterMode.cpp : 。
//
#include "stdafx.h"
// (Adapter),
// ,
//
// ,
// :
//
class MathAdd
{
public:
virtual int Add(int a, int b) = 0;
protected:
private:
};
//
class MathAdd_Veteran : public MathAdd
{
public:
int Add(int a, int b)
{
return a + b;
}
};
//
class MathAdd_Novice
{
public:
int jiafa(int a, int b)
{
return a + b;
}
protected:
private:
};
// , ,
// 。。
class MathAdd_Helper : public MathAdd
{
public:
int Add(int a, int b)
{
return m_Mn.jiafa(a, b);
}
private:
MathAdd_Novice m_Mn;
};
//
int Add(MathAdd* pMa, int a, int b)
{
return pMa->Add(a, b);
}
int _tmain(int argc, _TCHAR* argv[])
{
MathAdd *pMv = (MathAdd*) new MathAdd_Veteran;
int r = Add(pMv, 100, -20);
// , ,
//
// !
MathAdd *pMh = (MathAdd*) new MathAdd_Helper;
r = Add(pMh, 1, 2);
return 0;
}