软件架构师需要关系设计模式
当有提示时:客户端最常用的是弹出message对话框;服务端最常用的是写日志文件。
下面的例子假定五个开发组参与:
//核心逻辑组 class IShow { public: virtual void show(const char* szText)=0; virtual ~IShow(){}; }; class IGlobe { public: virtual IShow& GetShow() =0; }; void Init(IGlobe& globe,UINT uID ) { if( 0 == uID ) { globe.GetShow().show("错误的账号ID(标识符)"); } } //服务端业务逻辑组 namespace NServer { class CShow : public IShow { virtual void show(const char* szText) { //将szText记录到日志文件中 } }; class CGlobe : public IGlobe { private : virtual IShow& GetShow() { return m_show ; } CShow m_show ; }; } //客户端业务逻辑组 namespace NClient { class CShow : public IShow { virtual void show(const char* szText) { AfxMessageBox(szText); } }; class CGlobe : public IGlobe { private : virtual IShow& GetShow() { return m_show ; } CShow m_show ; }; } //服务端实现组 void CTest3Dlg::OnButton1() { NServer::CGlobe g_globe ; //... UINT uID = 0 ; //... Init(g_globe,uID); } //客户端实现组 void CTest3Dlg::OnButton2() { NClient::CGlobe g_globe ; //... UINT uID = 0 ; //... Init(g_globe,uID); }
类图: