我正在使用几个不同的服务来显示提要中的文章。它们都可以使用一个视图控制器显示,但是我必须创建一个属性来指示用户来自哪个服务,并且每次我要对这些文章进行操作时都要对其进行检查。
我有这种方法的经验-相信我有很多意大利面条代码,只是要查看它是哪种服务,确定每种服务的处理方式,这有点混乱。
所以我有2个选择:
1-对所有服务重新使用ArticlesViewController,但是请检查文章来自哪一个,并在我要编辑这些文章时根据此做不同的事情。
2-为每个服务制作FacebookArticlesViewController,TwitterArticlesViewController,SinaWeiboArticlesViewController(仅作为示例),并分离逻辑。
您认为最好的方法是什么?
最佳答案
第一种选择更好,因为您不重复任何代码。将来,如果您必须更改UI,则只需在一个位置进行更改。如果采用第二种方法,则必须在所有视图控制器中进行更改,并且很可能会错过一些东西。
另外,您可以做的是,创建一个包含所有常见内容的父文章视图控制器,并仅为那些需要大量自定义的文章类型继承单独的文章视图控制器。
而且,如果您文章中的差异主要与业务逻辑有关,而不与UI有关,那么最好由单独的业务层来管理所有这些内容。当然,您可以为这些业务层实现我在上一段中提到的相同类型的继承。
关于iphone - 重用 View Controller 是更好还是分离逻辑更好,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12831720/