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