//声明文件
class CUserInterfaceLayer{//界面层
private:
string strLayer;
public:
void SetLayer(string language);
string GetLayer();
};
class CBusinessLogicLayer{//业务逻辑层
private:
string strLayer;
public:
void SetLayer(string language);
string GetLayer();
};
class CDataAccessLayer{//数据访问曾
private:
string strLayer;
public:
void SetLayer(string language);
string GetLayer();
};
class CAppDevelop{//抽象的开发人员
public:
virtual void BuildUIL() = 0;
virtual void BuildBLL() = 0;
virtual void BuildDAL() = 0;
virtual void FinishTask() = 0;
};
class CCPlusPlusProgrammer : public CAppDevelop{//MFC C++ ODBC(C++相关技术)
private:
CUserInterfaceLayer* pUIL;
CBusinessLogicLayer* pBLL;
CDataAccessLayer* pDAL;
public:
CCPlusPlusProgrammer();
~CCPlusPlusProgrammer();
void BuildUIL();
void BuildBLL();
void BuildDAL();
void FinishTask();
};
class CJavaProgrammer : public CAppDevelop{//Swing Java JDBC(Java相关技术)
private:
CUserInterfaceLayer* pUIL;
CBusinessLogicLayer* pBLL;
CDataAccessLayer* pDAL;
public:
CJavaProgrammer();
~CJavaProgrammer();
void BuildUIL();
void BuildBLL();
void BuildDAL();
void FinishTask();
};
class CProMgr{
private:
CAppDevelop* pProgrammer;
public:
void SelectProgrammer(CAppDevelop* programmer);
void Consturct();
};
//实现文件
void CUserInterfaceLayer::SetLayer(string language){ strLayer = language + " UserInterface.";}
string CUserInterfaceLayer::GetLayer(){ return strLayer;}
void CBusinessLogicLayer::SetLayer(string language){ strLayer = language + " BusinessLogic.";}
string CBusinessLogicLayer::GetLayer(){return strLayer;}
void CDataAccessLayer::SetLayer(string language){strLayer = language + " DataAccess.";}
string CDataAccessLayer::GetLayer(){return strLayer;}
CCPlusPlusProgrammer::CCPlusPlusProgrammer()
{
pUIL = new CUserInterfaceLayer();
pBLL = new CBusinessLogicLayer();
pDAL = new CDataAccessLayer();
}
CCPlusPlusProgrammer::~CCPlusPlusProgrammer()
{
if(pUIL != NULL) delete pUIL;
if(pBLL != NULL) delete pBLL;
if(pDAL != NULL) delete pDAL;
}
void CCPlusPlusProgrammer::BuildUIL(){pUIL->SetLayer("MFC");}
void CCPlusPlusProgrammer::BuildBLL(){pBLL->SetLayer("C++");}
void CCPlusPlusProgrammer::BuildDAL(){pDAL->SetLayer("ODBC");}
void CCPlusPlusProgrammer::FinishTask()
{
cout << "*********************" << endl;
cout << "Exe including" << endl;
cout << pUIL->GetLayer() << endl;
cout << pBLL->GetLayer() << endl;
cout << pDAL->GetLayer() << endl;
cout << "*********************" << endl;
}
CJavaProgrammer::CJavaProgrammer()
{
pUIL = new CUserInterfaceLayer();
pBLL = new CBusinessLogicLayer();
pDAL = new CDataAccessLayer();
}
CJavaProgrammer::~CJavaProgrammer()
{
if(pUIL != NULL) delete pUIL;
if(pBLL != NULL) delete pBLL;
if(pDAL != NULL) delete pDAL;
}
void CJavaProgrammer::BuildUIL(){pUIL->SetLayer("Swing");}
void CJavaProgrammer::BuildBLL(){pBLL->SetLayer("Java");}
void CJavaProgrammer::BuildDAL(){pDAL->SetLayer("JDBC");}
void CJavaProgrammer::FinishTask()
{
cout << "*********************" << endl;
cout << "Jar including" << endl;
cout << pUIL->GetLayer() << endl;
cout << pBLL->GetLayer() << endl;
cout << pDAL->GetLayer() << endl;
cout << "*********************" << endl;
}
void CProMgr::SelectProgrammer(CAppDevelop* programmer){pProgrammer = programmer;}
void CProMgr::Consturct()
{
pProgrammer->BuildUIL();
pProgrammer->BuildBLL();
pProgrammer->BuildDAL();
}
//测试客户端
void main()
{
CProMgr oProMgr;//项目经理
CJavaProgrammer oJava;//Java程序猿
CCPlusPlusProgrammer oCPlusPlus;//C++程序猿
oProMgr.SelectProgrammer(&oJava);
oProMgr.Consturct();
oJava.FinishTask();
oProMgr.SelectProgrammer(&oCPlusPlus);
oProMgr.Consturct();
oCPlusPlus.FinishTask();
}
这篇博客探讨了在项目管理中,Java程序员和C++程序员的不同特点和工作方式。通过对代码组织、设计模式应用等方面的比较,展示了两种语言在实际开发中的差异。
2096

被折叠的 条评论
为什么被折叠?



