再论ACE_INET_Addr看封装

部署运行你感兴趣的模型镜像

 SOCKADDR本身是C的一个结构,C已经对它进行了封装,可惜使用的时候你要操作一大堆细节,这增大了出错率。

我们来看SOCKADDR为我们提供了一个什么样的功能。

1.它为其他部分提供信息。

我们把信息传递给sockaddr,以后传递sockaddr给需要地址信息的部分。

2.它提供查询功能

别人传递过来的sockaddr你可能要做检查合法性等若干需要获取信息的操作。

sockaddr说白了就是一个载体。存放了网络地址信息,再深刻一点就是一个ip地址和一个端口。

为了把直接使用sockaddr的所有细节隐藏起来,对涉及sockaddr的操作一并封装起来是必然要求。

我想ACE_INET_Addr的思想首要是为了隐藏信息。要不要考虑其他类的使用情况呢?我想这个是不必要的。如果你提供了该提供的,那使用者不会有任何无理要求。

这其实就是facade的设计要求使然。

把细节的操作格式化,譬如做成了函数,编译器可以捕获错误的使用。

我想ACE_INET_Addr给我的启示是,把容易出错且没有严格检查包含的行为、数据制定规则,由该规则保证容易出错的地方不会出错或在出错的时候提醒使用者。

在C++中,这个规则的检查者只有一个,他就是编译器。

所以制定这个规则的手段就要围绕编译器的检查来做文章,在这里,使用的是转化为函数利用编译器对函数的参数类型检查来做。

这个问题继续分析下去,我们可以得出:我们能借助编译器的,最多的也只有类型检查了。所以思考手段的方向转到什么情况下编译器要执行类型检查。

最常用的是函数调用。

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值