软件架构师需要关系设计模式
当有提示时:客户端最常用的是弹出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);
}
类图:
2021年目标:完成新书《闻缺陷则喜》,本博客右上公告有下载、阅读链接。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理