Class 设计困境 - 相当接近的功能的重复代码

Class design dilemma - duplicated code for fairly close features

我正在构建一个在不同视图控制器中显示特定类型对象的应用程序(在本例中为三个或四个 UITableViewController)。 在一个地方,它们会像 latest objects,在另一个地方,它们会变成 search results 等等……因此,归根结底,控制器几乎完全相似。他们只有一些变化。例如,SearchTableViewController 有一个搜索栏并实现了该功能所需的方法。 除此之外,类 "share" 他们的大部分代码。我该怎么做才能使这段代码真正共享,而不是像现在这样被复制?

如果视图控制器之间的 UI 明显不同,那么您可能需要子类化。但如果差异在于数据模型或数据处理方式,那么您可以使用通用视图控制器并将您的数据模型设计得更通用,以便可以以统一的方式查看、排序或搜索。

然而,根据我的经验,所有开发人员都有一种天生的本能,即不惜一切代价避免重复,这常常会妨碍完成工作。从务实的角度,我建议以最"obvious"的方式实现它,然后再考虑优化它。只有这样你才会知道哪里有重复的地方你可以去掉。