您的位置:首页 > 其它

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

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

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

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

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

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

理解这个多维体系将比理解一维线性的那一堆方法容易一些。这对使用者也是一件好事。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐