如何将Objective-C(iOS应用)代码分解为面向对象的设计

胜斋

我第一次开始一个庞大的项目。我应该是这个大项目的开发人员之一,突然之间,首席开发人员及其团队退出了合同。现在,我离开了我自己,与几个初级开发人员一起管理这个大项目,并且我试图牢固地理解如何分解这些代码。

从逻辑上讲,对我来说,代码应按其屏幕拆分。我知道那可能不是应该做到的。所以告诉我,应该怎么做?该应用程序总共约有6个屏幕。它连接到服务器,该服务器维护有关其他手机上应用程序的所有其他实例的数据。您可以将其视为半社交的。它还将在某些部分使用相机功能,并且一定会使用地理位置。可能是地理围栏。显然,它将需要一个API才能连接到服务器。最有可能的API不仅仅是1。我在不破坏NDA的前提下不能说更多。

再说一遍,我的问题与如何分解代码以使其尽可能高效有关。就个人而言,我将在该项目上做很少的编码。可能主要是代码审查,单元测试和计划。每个屏幕是否应该有1个文件,重复的部分应该有自己的类?应该是MVC吗?我们在这里谈论的是一种3万行的应用程序,它以最佳和最有效的方式运行。有没有比我列出的方法更好的方法来拆分代码?

我想我的真正问题是,有人对解决我当前问题的书有很好的建议吗?建议使用干净的代码,这是一个好的开始。我已经阅读了神话般的人月并完成了代码,但是它们并没有真正解决我当前的问题。我需要一些建议书,这些书将帮助我学习如何构建和计划大型代码库的创建

Ansible

我确定您知道这是一个非常模糊的问题,您可以写一本书来回答。实际上,我建议您阅读一本类似《清洁代码》的书。但是,我将在10,000英尺的高度概述一下。

首先,如果您正在使用iPhone应用程序,则需要使用MVC,因为这是Apple设置框架的方式。这意味着每个屏幕都将(至少)具有一个视图控制器,可能是一个自定义视图或NIB。

另外,您将希望视图控制器指向您的模型(您的业务对象),而不是相反。这些对象应在没有任何用户界面逻辑的情况下实现用例。这就是您的视图控制器和视图将要执行的操作。

您如何分解用例?嗯,这与您的程序高度相关,我无法提供(很多)详细信息。没有一个正确的答案。但是总的来说,您希望将每个对象与其他对象尽可能地隔离开。如果对象曾经引用过其他对象,那么您实际上就没有OO设计,您会一团糟。特别是在谈论单元测试和TDD时。如果在测试一个零件时最终只能引入整个系统,那么您不只是在测试一个小部件,是吗?

确实,有一本关于OO设计的好书。这是一个很大的主题,没有人能够在SO答案中进行解释。我认为Clean Code是一个好的开始,也许其他人会有其他建议?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章