中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。
在MVC 框架中,其中C(控制器)就是 M(模型)和 V(视图)的中介者。我们接下来用一个搜索视图来展示中介者模式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
----------  简单工厂模式:---------- 

定义一个计算接口。

定义四个加减乘除 的具有该接口功能 的类。

定义一个工厂类。 用来创建 不同的 接口功能类。

根据不同的需要,通过 接口 接收对象, 调用不同的功能操作类的实现方法。


---------- 模板模式:----------

父类运行的时候,调用子类 重写的方法。



---------- 工厂模式:----------

定义一个接口功能。 两个数变量 ,有计算功能。

定义 不同的 功能接口实现类。 使用变量时候 用 @synthesize numberA = _numberA;

定义一个类,定义创建工厂方法,不实现。改抽象工厂 具有计算接口功能。

定义不同的工厂子类,实现创建工厂对象。

调用的时候,通过 不同的计算方法。



---------- 责任模式:----------

请假:

定义一个 领导。 Manager 领导 具有批准请假功能。 内包含直属领导。

领导有三级层次的领导。(内包含直属领导。如果自己审批时候发现 需要直属领导审批 则直接让直属领导操作)

普通请假 普通领导批准,请假天数超过一定数需要更高级领导 批准。 普通领导 有直属 领导 。 普通领导处理时候 一级一级 处理上去 。




---------- 命令模式,享元模式:----------

定义一个菜单。Order .

菜单有很多种菜单。 子类 order . 菜单中 厨师 cook 执行这个菜单。

多个客户下单 。 waiter 统一接受 菜单。(不管点的什么菜)。

watier 去传达给 cook 去 做不同的菜系。调用不同的子类菜单 让厨师去 做菜。

消息布局观察:周边头像,昵称,间距 ,气泡 及其他统一,内容视图挖空; 采取自定义注入视图配置;

从CellFor 方法说起;聊天消息页面,我们看到 有 聊天消息 还有时间戳;根据 ModelItem项 的 class类型 分别去创建 两种cell ; 只里只讲 聊天消息cell;

流程:当为聊天消息Model 时候,名 messageModel(messageModel 里面 大致有以下属性: 记录消息模型,消息布局,头像,昵称 显示控制,消息内容size; (不足 后补)); 取得消息布局; 相对应的content类字符串;根据 identify = content 去重用cell (不同消息类型重用标识不同 ); 创建MessageCell 根据 content 去创建 对应的内容视图 即可;再刷新视图数据 赋值;

VC 发起请求, 一个专门发请求的发射器;我给它取名字 叫 NetManager , 显然 ,为 了不重复创建http 请求基础配置(请求头,Https证书配置等),这是个单例;

发射器 发的是请求; 考虑到每个业务 都有不同的请求;我准备了 一个 超级父类请求 ;取名 DataRequest; 具体的请求,只需传 具体的子类request;

一个APP 请求有很多,为了区分 及 维护方便 ,于是我定义了一个枚举;每个业务请求,只需给它表明一个标识;

AFNetworking也被广泛使用。其它的ASIHttpRequest,MKNetworkKit啥的其实也都还不错,苹果对网络请求部分已经做了很好的封装。但不管如何,APP端还是要对网络进行一个封装。在实际的App开发中,Afnetworking已经成为了事实上各大App的标准配置。

iOS开发领域有很多对象间数据的传递方式,我看到的大多数App在网络层所采用的方案主要集中于这三种:Delegate,Notification,Block。我的意见是Delegate为主,Notification可以用在网络发生变化时候使用。