我正在使用几种不同的服务来显示提要中的文章。它们都可以使用一个 View Controller 显示,但是我必须创建一个属性来指示用户来自哪个服务,并在每次我想对这些文章执行某些操作时检查它。
我对这种方法有经验 - 相信我有很多意大利面条代码,只是为了检查它是哪个服务,决定对每个服务做什么,这有点困惑。
所以我有两个选择:
1st - 为所有服务重新使用 ArticlesViewController,但检查文章来自哪个服务,并在我想编辑这些文章时基于此做不同的事情。
第二 - 为每个服务制作 FacebookArticlesViewController、TwitterArticlesViewController、SinaWeiboArticlesViewController(仅示例),并分离逻辑。
您认为最好的方法是什么?
最佳答案
惊喜第三个选项!
创建一个名为 ArticlesViewControllerSourceDelegate
的协议(protocol)或基类。对于 ArticlesViewController
中您具有根据文章来源而变化的逻辑的每个位置,将选择器添加到 ArticlesViewControllerSourceDelegate
。
然后为每个文章源创建一个 ArticlesViewControllerSourceDelegate
的实现或子类。
关于iphone - 是重用 View Controller 更好还是分离逻辑更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12831720/