zh-google-styleguide/google-objc-styleguide/patterns.rst
2012-07-17 12:51:19 +08:00

31 lines
1.3 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Cocoa 模式
================
委托模式
~~~~~~~~~~~~~
.. tip::
委托对象不应该被 ``retain``
实现委托模式的类应:
#. 拥有一个名为 ``delegate_`` 的实例变量来引用委托。
#. 因此,访问器方法应该命名为 ``delegate````setDelegate:``
#. ``delegate_`` 对象不应该被 ``retain``
模型/视图/控制器MVC
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. tip::
分离模型与视图。分离控制器与视图、模型。回调 API 使用 ``@protocol``
* 分离模型与视图:不要假设模型或者数据源的表示方法。保持数据源与表示层之间的接口抽象。视图不需要了解模型的逻辑(主要的规则是问问你自己,对于数据源的一个实例,有没有可能有多种不同状态的表示方法)。
* 分离控制器与模型、视图:不要把所有的 “业务逻辑” 放进跟视图有关的类中。这使代码非常难以复用。使用控制器类来处理这些代码,但保证控制器不需要了解太多表示层的逻辑。
* 使用 ``@protocol`` 来定义回调 API如果不是所有的方法都必须实现使用 ``@optional``(特例:使用 Objective-C 1.0 时,``@optional`` 不可用,可使用类别来定义一个 “非正规的协议”)。