项目经理,一个Java程序员和一个C++程序员

这篇博客探讨了在项目管理中,Java程序员和C++程序员的不同特点和工作方式。通过对代码组织、设计模式应用等方面的比较,展示了两种语言在实际开发中的差异。

//声明文件

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();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值