强制不可变性与纯函数
不可变对象与纯方法
在运行时,程序的状态是实例和静态字段的值。控制状态如何、何时以及为何改变是最具挑战性的编程任务之一。在多线程环境中,这变得异常困难,因为状态变化导致的潜在副作用过于复杂而难以理解。
为什么不可变性很重要
面向对象开发者越来越多地受到函数式编程方法的启发,其中大多数状态是不可变的。对象是 不可变 如果其状态在创建后不再改变。方法是 纯 如果其执行不改变任何字段状态。不可变对象和纯方法是限制意外副作用的两种有效方式。
CppDepend 如何提供帮助
通过专用的 Code Quest 条件和规则,CppDepend 让您能对类和方法断言不可变性和纯度。您可以:
- 检测本应不可变的类中的可变字段
- 识别修改对象状态的非纯方法
- 在整个代码库中强制纯函数约束
- 生成不可变性合规报告
开始使用此功能的最佳方式是查看默认的 Code Quest 约束列表并阅读相关文档。CppDepend 包含用于检测不可变类型、纯方法和副作用违规的内置规则。
