关闭

ACE封装——使用继承提高设计清晰和可扩性

614人阅读 评论(0) 收藏 举报

做过网络编程的人都知道sockaddr这个东西,其实最初的时候我也无法理解,为什么要强转指针又传递sizeof这个东西呢。

其实这是C的继承,unix和internet领域有不同的sockaddr形式,sockaddr是逻辑上的基类,通过不同的sizeof可以获得正确的类型信息然后转型。这真是太不好了。

如果你使用的代码中有这样良好的设计但是没有良好的代码形式,那你表现的时候到了,简单的一个C++继承可以漂亮的完成这个工作,这在方便自己使用的同时一定让原作者感动欣慰,他当时也想到了,而苦于没有合适的工具,而你有,不用自己设计就可以完成漂亮事情,这是一件多么美好的事情啊。

回想起我初学网络编程的时候的苦痛,我能理解将一维api转化为继承体系的重要性。

那个时候,为了记住各个api我付出了很大的记忆劳动,尽管最终有些api是不常用的,但是不记住的话在万一需要用的时候你一定会后悔的。现在看看c socket api那已大列函数依然觉得这是新手要跨越的一个大障碍,幸好ace早就考虑到了这个问题,ACE_SOCK、ACE_SOCK_Acceptor、ACE_INET_Addr的继承体系覆盖了这一切函数。有些共同的东西被包覆在了基类里,子类用来实现有区别的东西。

理解这个多维体系将比理解一维线性的那一堆方法容易一些。这对使用者也是一件好事。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:176932次
    • 积分:2876
    • 等级:
    • 排名:第12345名
    • 原创:113篇
    • 转载:3篇
    • 译文:0篇
    • 评论:28条
    文章分类