假设我有双倍长度,它可以是真实长度,也可以是尚未准备好,因为我们在服务器中还没有长度,也没有任何东西可以发送给客户端。我们需要将此长度从服务器传递给客户端,作为固定数据协议的一部分。客户端当前只使用一次长度,但将来可能会使用更多。
通过 double length 和 bool isLengthValid,并在每个使用长度的地方,检查是否 isLengthValid -没有混合数据类型的清洁设计,但用户必须记住检查
双传?长度,并且在您使用长度的每个地方,检查长度==空 - 设计是否清晰(因为它是可空的),但如果您查看和类型。另外——如果有人在没有检查的情况下使用也会有例外(好与坏,取决于你如何看待它)
制作一个类 Length 而不是 double。该类将具有 GetLengthIfYouCheckedIt 或其他内容的清晰接口。可读性很强,很难出错,但设计有点过头了。
你的解决方案是什么?