了解最新技术文章
上次,我谈到了单次调用函数的内联。事实上,在某些情况下,即使对于多次调用的函数,将函数内联到更大的函数中也是有益的。
假设您正在处理 think cell 图表上的更改。如果用户更改了颜色,您需要应用该颜色,并且可能必须反转文本以使其在可能更改的背景上保持清晰:
如果用户更改了数据,您还需要将标签放置到新位置。文本的反转取决于其背景,而背景又取决于文本的位置。因此PlaceLabels
必须遵循InvertText
:
实际上,此类操作的顺序可能要长得多。它们的顺序经过精心设计,以便尊重所有依赖关系。在某些情况下,您可以跳过其中一些,但顺序应始终保持不变。
如果我们将操作拆分为单独的函数,则必须注意所有调用站点都遵守此顺序。它违反了DRY(Don’t Repeat Yourself)原则,我们必须在程序中的许多地方确保这个顺序。
解决方案是将所有操作按正确的顺序放入单个函数中,并传递一个或多个参数来控制实际运行的子集。如果操作不需要参数,则参数可以只是位掩码。如果这样做,则每个操作都可以由可选参数包控制,如果是null
,则意味着跳过该操作。
当然,在 think cell,我们经历了几次以错误顺序调用函数的痛苦之后才学会了这种方法……
下一篇:如何开发财务规划和分析仪表板
24小时免费咨询
请输入您的联系电话,座机请加区号