C++设计模式与惯用法详解
1. 货币类设计考量
在设计货币类时,有几个关键因素需要考虑:
- 标准考量 :例如,必须考虑ISO 4217国际货币代码标准。
- 用户显示 :思考如何将货币值展示给用户。
- 转换频率 :明确货币转换的发生频率。
从测试角度来看,为货币类实现100%的单元测试覆盖至关重要,以此确保该类在所有情况下都能按预期工作。不过,货币类相较于纯整数表示存在一个小缺点,即会损失一点性能。在某些系统中,这可能会成为问题,但在大多数情况下,其优势会更为显著,要牢记过早优化是不可取的。
2. 特殊情况对象(空对象)
在函数或方法中返回 nullptr 是不可取的,应尽量避免。同时,异常仅应在真正的异常情况下使用,而非用于控制正常的程序流程。那么,对于那些并非真正异常的特殊情况,如内存分配失败,该如何处理,而不使用无语义的 nullptr 或其他奇怪的值呢?
以按名称查询客户为例,最初的查找方法如下:
Customer CustomerService::findCustomerByName(const std::string& name) {
// Code that searches the customer by name...
// ...but what shall we do, if a customer with t
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



