我有一个类需要按特定顺序调用它的某些方法。如果这些方法无序调用,则对象将停止正常工作。方法中有一些断言可确保对象处于有效状态。我可以使用哪些命名约定来与下一个人沟通,以阅读需要按特定顺序调用这些方法的代码?
将其转换为一种巨大的方法是可能的,但是巨大的方法是创建问题的好方法。 (有两种方法可以触发此序列,因此一种巨大的方法也会导致重复。)
可以编写注释来解释需要按顺序调用方法,但注释与明确命名的方法相比不太有用。
有什么建议吗?
答案 0 :(得分:4)
是否有可能重构,所以(至少有一些)第一个函数的状态作为参数传递给第二个函数,那么就不可能避免了?
否则,如果你有评论和断言,那你就做得很好。
但是,“将其转换为一个巨大的方法”听起来好像外部代码不需要以任何方式访问中间状态。如果是这样,为什么不只是创建一个公共方法,它连续调用几个私有方法?类似的东西:
FroblicateWeazel() {
// Need to be in this order:
FroblicateWeazel_Init();
FroblicateWeazel_PerformCals();
FroblicateWeazel_OutputCalcs();
FroblicateWeazel_Cleanup();
}
这并不完美,但如果订单集中在那个功能上,那么很容易看出他们应该采用什么顺序。
答案 1 :(得分:0)
消息摘要和加密/解密例程通常使用_init()
方法进行设置,_update()
添加新数据,_final()
返回最终结果并撕回来再次下来。