序言
这1周来走了一段弯路, 终于拨乱反正发现自己错了.
原因是我在设计一套自用的通信架构和通信协议的时候,没有从根本上理解层设计的概念.
结论
面向层编程,是面向切面编程,不是面向对象编程
实现不同层逻辑只能是不同的方法, 而不是多个对象实例
一系列层的叠加关系就是一系列方法的嵌套关系
描述层
第1层 对象路由(也叫业务传输模式)
点对点: 客户端发送给客户端
点对群: 客户端发送给群组,群组代收消息保存到消息库队列
每个人登录时获取上一次到当前的所有消息,
人在线,发送消息,标记当前发送记录编号,
人不在线,不处理
群退出时,移除历史消息,
点对部门树:客户端发送消息给(部门)树节点
部门保存消息
部门内成员和子部门成员登录时获取所有未读消息
第2层 客户端路由(也叫网络传输模式)
数据从发送端C1 流到服务器 A1
直接路由
在服务器A1 找到接收端C2,
把数据发送给接收端C2
间接路由(中小免费版中,不采用这一模式,但是必须有接口)
在服务器A1 找不到接收端C2
到注册服务器R 查询到C2 服务器A2
把数据流到服务器A2 再流到接收端C2
我错误的把两个层设计成对象, 实际应该是两个切面方法才对