iPhone 和 iPad 开发 - 良好的设计架构以实现最大的可重用性

标签 iphone objective-c ipad model-view-controller design-patterns

我有三个与 iPhone 和 iPad 开发相关的问题。我正在为 iPhone 编写一个应用程序,将来应该也可用于 iPad。通过使用 MVC 模式,我知道我会保留我的模型,但是我不清楚是否需要丢弃 Controller 和/或 View 。所以,我的问题是:

1) 对于那些为两个平台开发相同应用程序的人,最佳做法是什么?为了以最少的工作量和正确的设计开发这两个应用程序,哪些部分通常是可重用的,哪些部分通常会被丢弃?

2) 此外,我还需要在应用程序中包含状态/全局信息。您如何处理 iPhone/iPad 应用程序中的(设计方面的)“状态”信息?我目前有我需要在整个应用程序中使用的用户信息(用户名和密码),以便发出多个服务器请求(在 http header 中编码)。为了实现这一点,我将用户模型存储在 AppDelegate 类中。这在设计上是否可行,还是应该以不同的方式完成?

3) 最后,我将我的模型分为抽象类(或处理通用内容的类)和专门处理不同任务的子类。这个想法是编写尽可能少的代码以避免代码重复(例如:发送请求是通用的,解析响应取决于手头的任务)。性能方面,将代码分离在几个类中并具有模型继承是否有问题?

提前致谢!

最佳答案

1) 设计良好的模型、 View 和 Controller 应该可以在大部分 iOS 设备上重复使用。平台之间 UI 设计的差异程度将在很大程度上决定 View Controller 的可重用性。例如,在 iPad 上运行时, View Controller 可能会以 Split View或弹出窗口呈现,而不是全屏显示,并且从栏按钮项目呈现的操作表可能不会有取消按钮。

2) 不要在应用程序委托(delegate)中存储状态。相反,将其存储在模型类中。用户名和密码尤其应存储在钥匙串(keychain)中。

3) 过于复杂的类层次结构会降低灵 active 并使其更难理解事物是如何工作的,但不要担心类层次结构复杂性方面的性能。相反,衡量性能并花时间优化您将以最少的努力获得最大返回的地方。这不太可能是父类(super class)方法实现查找。

关于iPhone 和 iPad 开发 - 良好的设计架构以实现最大的可重用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6179099/

相关文章:

ios如何用iphone应用程序版本按版本管理数据库?

c++ - 在 C++ 中返回 float 组

ios - 在 UIDatePicker 中获取不正确的 yyyy 格式

iphone - 如何填充两个 UIBezierPath 之间的空间

android - 真正实时流式传输到 Android/iPhone

java - AFNetworking 在 Java Web 服务中失败

javascript - iPad 上的 jQuery 鼠标悬停

iphone - 使用 OpenCV 面部检测在 iOS 中裁剪图像

iphone - 将数据从 .csv 文件导入到 IOS 中的 sqlite 数据库。 FM数据库

iphone - Xcode 4.2 在 IB 中的 Tab Bar 上放置导航 Controller 时发出警告