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

问题描述

|| 我有三个与iPhone和iPad开发有关的问题。我正在编写适用于iPhone的应用程序,将来也应可用于iPad。通过使用MVC模式,我知道我会保留我的模型,但是我不清楚是否需要丢弃控制器和/或视图。因此,我的问题是: 1)对于为两个平台开发相同应用程序的人,最佳实践是什么?为了以最小的努力和正确的设计来开发两个应用程序,通常可以重用哪些部分,而通常丢弃哪些部分? 2)此外,我还需要在应用程序中包含状态/全局信息。您如何在iPhone / iPad应用程序中处理(设计)“状态”信息?我目前拥有在整个应用程序中需要使用的用户信息(用户名密码),以便发出多个服务器请求(在http标头中编码)。为了实现这一点,我将用户模型存储在AppDelegate类中。在设计上可以吗,还是应该以其他方式完成? 3)最后,我将模型分为抽象类(或处理通用内容的类)和专门处理不同任务的子类。想法是编写尽可能少的代码,以避免代码重复(例如:发送请求是通用的,而解析响应取决于当前的任务)。在性能方面,将代码分成几个类并具有模型继承是一个问题吗? 提前致谢!     

解决方法

        1)设计良好的模型,视图和控制器应可在iOS设备上重用。平台之间UI设计的差异程度将在很大程度上决定视图控制器的可重用性。例如,在iPad上运行时,视图控制器可能会显示在拆分视图或弹出窗口中,而不是全屏显示,并且从条形按钮项显示的操作表可能没有取消按钮。 2)不要将状态存储在应用程序委托中。而是将其存储在模型类中。用户名和密码尤其应存储在钥匙串中。 3)过于复杂的类层次结构会降低灵活性,并使您难以理解事物的工作方式,但是不必担心类层次结构复杂性方面的性能。相反,要衡量性能并花时间优化,以最少的精力获得最大的回报。这不太可能是超类方法的实现查找。