大兽模式 vs ACE 模式 vs ASIO 协程模式


#1

ACE 模式

ACE 模式由 ACE 发明. 特点就是 通过继承来使用接口. 要读取 socket 的数据, 就要派生出来, 然后去实现 on_read 这样的 virtual 函数.

缺点就是程序里充满到处被 ACE 强奸了的类型… 而且继承太多了, 程序很容易陷入混乱

大兽模式

说道大兽模式, 这个是 jack 在开发 avrouter 的过程中, 经过对 ACE 模式的仔细研究, 批判后, 又结合了实际情况, 对 ASIO 的进行了封装, 77 49 天后终于提炼出了 大兽模式!

大兽模式简单的来说, 就是考虑到 ACE 这种 on_read 的模式要比 ASIO 的模式更容易被低水平程序员接受, 所以将 ASIO 重新封装成 ACE 的 on_read 模式. 但是,又不同于 ACE 使用 virtual 来做接口 , 大兽模式使用了先进的一塌糊涂的 boost::function 作为接口.

如果只是这样, 那充其量不过是改进版的 ACE 模式, 并配拥有一个独立的模式名称 : 大兽模式.

那么, 是什么让它拥有了自己的名字呢? 是 protobuf !

大兽模式, 不仅仅是个 socket 框架, 更重要的是包含了 protobuf ! 使得边写网络程序就和边写本地程序一样简单. 参数从结构体(只是这个结构体是经过 protobuf 反序列化出来的! 也是大兽模式自动进行的, 无需再写代码! )了提出来, 然后吧数据存入 结构体 ( 又被大兽模式给自动的序列化! ) , 序列化后的数据, 大兽框架也自动发给客户! 无需操心!

大兽模式将网络程序的编写带入了一个三岁小孩都能写好, 写正确的时代!

ASIO 协程模式

ASIO 协程模式先参考下面的帖子:

https://www.avboost.com/t/asio/245 https://www.avboost.com/t/asio/499 https://www.avboost.com/t/asio/498

ASIO 协程模式, 主要提供了一个 c++er 装逼到无人能懂你代码的境界存在 !

呵呵, 我开玩笑的.

ASIO 协程模式, 意义就是将异步写起来看得想是同步的. 即囊括了同步的优点(结构简单, 逻辑清晰) , 又包含了异步的优点 ! 实乃网络编程的终极. 可惜的是, 只有少数人能掌握. 诶 这也是 jack 发明大兽模式的最大原因, 因为 ACE 模式始终是初学者(初学异步网络编程) 的最爱.


#2

哪里有大兽模式的例子哦.


#3

同问………………