通常的本能是删除您在代码中看到的所有代码重复。但是,我发现自己处于一种重复的幻象之中。
为了更详细地描述这种情况:我正在开发一个Web应用程序,并且大多数视图基本上是相同的-它们显示用户可以滚动并从中选择的项目列表,包含所选项目的第二个列表以及“保存” ”按钮以保存新列表。
在我看来,这个问题很容易。但是,每个视图都有其自己的怪癖-有时您需要重新计算某些内容,有时您必须存储一些其他数据,等等。这些我通过在主逻辑代码中插入回调挂钩来解决。
有这么多,它是越来越少维护的,因为我需要为所有基本功能提供回调的观点之间的微小差异,主要逻辑开始看起来像回调调用的一个巨大的序列。最后,我没有节省任何时间或代码,因为每个视图都有自己执行的代码-全部在回调中。
问题是:
- 差异是如此之细,以至于代码在所有视图中看起来几乎都是相似的,
- 有这么多的差异,当你看细节,代码是不是有一点相像
我应该如何处理这种情况?
具有完全由回调调用组成的核心逻辑是否是一个好的解决方案?
还是我应该复制代码并降低基于回调的代码的复杂性?