图解设计模式

我们来把一些常用设计模式中的物件关系画成图:

MVC

MVC 便是将实例分成Model、View、Controller 三类,几乎现在主要平台上都采用这种设计,不过就像前面也提到的,不是每个平台都一致。像Windows 上往往把window 物件当成controller,但是在Mac 上window 被划入到view 这一块。

一般来说会由Controller 拥有Model 与View 物件。

Delegate

MVC 中,Controller 拥有View 与Model,所以Controller 可以直接呼叫View 与Model 上的各种method,但是当View 与Model 需要调用Controller 的时候,会把Controller 设定成delegate,而delegate 只需要符合protocol 的定义,不需要是特定Class,避免View 与Model 绑死在某个Controller 上。

Singleton

某个class 只有一个instance,这样在其他地方,都可以集中找到同一个instance。像UIApplication 等实例就是Singleton 实例。

Notification Center

一个实例改变状态的时候,其他实例不需要知道这个实例存在,也跟着一起改变状态。每个实例之间透过Notification Center 互相通知、又互相隔绝。

Factory Method

把Factory 变成建立实例的唯一入口,其他地方不需要知道某个class 确实来说是怎么做的,就可以建立需要的实例。Factory 于是可以把外部与内部实现隔绝开来。

results matching ""

    No results matching ""