iOS设计模式之适配器模式

之前公司太忙了,晚上回去倒头就睡,断更了很长一段时间!现在给自己定一个任务,每周最少更新1篇。

闲话不多说,开干!

1.什么是适配器模式?

适配器模式就是将一个原始接口转成客户端需要的接口;当原始接口不兼容新的接口,将它们连接起来一起工作就是适配器模式

2.有哪些应用场景?

接口不兼容时可以使用适配器模式

可以复用的类

统一输出接口,但输出端的类型无法确定

3.有哪些角色?

角色1:适配器<核心>

角色2:目标接口

角色3:被适配者

举个例子:UITableView

适配器:ViewController(实现delegate协议)

目标接口:UI界面/cell

被适配者:请求的数据模型(Model)

以上就是适配器模式的简单介绍。但是呢,光说理论肯定很枯燥无聊,接下来就是代码操作。

适配器模式大概分两种

第一种:类适配器

首先我们创建一个被适配者Adaptee

这里我们实现一个数据接口

假设这是请求下来的数据:1000V电压

但是呢!我们外部客户端只需要200V的电压,这该怎么办呢

这时候就需要一个适配器了

我们在创建一个适配者Adapter

注意,这里我们的适配者Adapter要继承Adaptee

另外,我们还要实现一个协议,我们在创建一个协议target

这时候我们.m文件里实现接口的转换兼容就ok了

最后在VC里面调用一下

这就是类适配器,虽然例子很简单,但是麻雀虽小,五脏俱全吗!

第二种:对象适配器

对象适配器用的要比类适配器广泛一些

同样,我们创建一个适配者ObjectAdapter,一样的要实现接口跟遵循协议,最后初始化

最后我们也在外部调用一下

好了,这就是两种适配器的简单架构了,实际应用中还是要复杂很多的。

最后,我们讲一下上面说到的tableView如何实现适配器模式

首先,我们创建一个tableView对象

以前我们是不是直接在VC里面这样直接创建tableView,笔者最开始也是这么写的。现在这个写法已经淘汰了,等下我的写法会让大家对代码的架构发生改变,这就是适配器模式的亮点!

首先创建一个数据模型UserModel

接着,创建一个tableView的基类适配器BaseAdapter,并且实现对tableView的协议

然后创建一个子类适配器TableAdapter,在这里面进行数据的整理以及tableView的实现

最后我们在看下外部是怎么实现tableView的

这时候VC的代码量是不是少了很多,代码结构也更加清晰分明了。所以以后的tableView改用这个写法吧!

这次就讲到这了,谢谢大家观看!

最后附上demo:AdapterDemo

你可能感兴趣的:(iOS设计模式之适配器模式)