美文网首页iOS面试
iOS设计模式之适配器模式

iOS设计模式之适配器模式

作者: 项啊丑 | 来源:发表于2019-03-04 12:00 被阅读0次

    之前公司太忙了,晚上回去倒头就睡,断更了很长一段时间!现在给自己定一个任务,每周最少更新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设计模式之适配器模式

        本文链接:https://www.haomeiwen.com/subject/vukbuqtx.html