公司目前给我分配了一个任务,要求做一个聊天工具,要求如下:
1,各个功能模块需要以dll方式进行组织;
2,需要一个容器管理这些 不同功能的dll模块;
3,用户可以以改变配置的方式加载不同的模块的dll,来达到不同的外观效果。我想这样做的好处是,根据项目的功能,容易分工,便于维护这个软件……
然后当某个模块功能增强后,可以及时提醒用户升级。我现在的想法是,把主界面上的每个按钮弹出的 对话框做成 dll,当用户管理点击界面上的某个按钮时,
这个按钮触发 并且某个dll。
    例如聊天对话框,当用户双击好友图像以后,触发加载并创建该好友的对话框的dll,然后用户可以在
这个弹出的对话框中,进行接收服务器传来的聊天信息,并且向好友发送聊天信息,并且可以触发音频视频,
功能,以及远程协助,传输文件等功能……;
    我的意思是,这个聊天工具的每个相对独立的模块(包括界面),通过dll的方式实现,主界面只负责加载这些模块。    我看,qq聊天工具,迅雷下载工具……安装后,与可执行文件同级别的有好多dll,其中有QQMainFrame.dll ,QQMsgFriendMng.dll等很多个dll。我想他们也好像是这样组织的。    请问各位大侠,你们在做类似软件架构的时候,怎么划分界面功能,和内部逻辑功能的模块呢?怎么组织这些模块之间通讯?