美文网首页
iOS知识复习笔记(15)---iOS常用设计模式

iOS知识复习笔记(15)---iOS常用设计模式

作者: 焦下客 | 来源:发表于2023-01-19 08:14 被阅读0次
    名称 分类 思想 角色 示例
    简单工厂模式 创建型 用个工厂来创建一个要求的相同种类东西 具体工厂类、抽象对象类、具体对象类 Factory生产 圆、方形、椭圆、菱形 的按钮
    工厂方法模式 创建型 用个工厂来创建多个要求的相同种类东西 具体工厂类、抽象对象类、具体对象类 Factory生产 圆、方形、椭圆、菱形 的按钮,同时区分暗黑主题、还是正常模式
    抽象工厂模式 创建型 用个工厂来创建多个要求的不相同种类东西 抽象工厂、工厂、抽象产品多种、具体产品多种 Factory生产 圆、方形、椭圆、菱形 的控件,同时区分暗黑主题、还是正常模式;控件包含按钮,UILabel、UIView、UIImageView
    建造者模式 创建型 创建一个复杂的东西 指挥者、抽象建造者、具体建造者、被建造的对象 通过KFC点餐来学习建造者模式
    单例模式 创建型 单一、重复使用、频繁使用 x XXManager,XXServer,UserDefault
    = = = = =
    适配器模式 结构型 把需适配者Adaptee,通过适配器Adapter,适配成可以供目标TargetA、B、C、D使用 ,注意ABCD用的都是Adaptee中的同样的功能,不是组合 Adaptee、Adapter、Target 通过撸一个滚动图来学习适配器模式
    桥接模式 结构型 A想用B但是没办法通过继承组合等形式达成时 桥接文件,这里边应该是极其复杂的黑盒子 apple 提供了使用桥接的思想,一个是原生OC、Swift调用JS、另一个是Swift调用OC;我能想到的一个示例:我们用Swift自己去解析Lottie的json文件,然后修改里边的值,让其做动画、改变宽高、颜色
    装饰器模式 结构型 动态的给对象增加方法 x swift中面向协议编程以及extension都是这种思想
    外观模式 结构型 减少不同类之间的交互,提供统一接口 使用者、 外观、子功能 在获取资源类中,需要分别调用本地缓存和网络数据,最后把这个组合结果返回;实现隔离减少不同类之间的交互
    代理模式 结构型 先占坑,异步操作 x 耗时操作,图片异步加载
    享元模式 结构型 缓存系统,缓存在内存中、大量重复使用适合颗粒度较小的东西 x x
    = = = = =
    命令模式 (×) 行为型 把命令抽象成对象,具体的命令对象,给外界提供接口,同时负责命令的执行 抽象命令类、具体命令类、调用者、接收者 设计模式系列 6-- 命令模式
    中介者模式 行为型 用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互 Mediator: 抽象中介者、ConcreteMediator: 具体中介者、Colleague: 抽象同事类、ConcreteColleague: 具体同事类 设计模式系列3--中介者模式
    观察者模式 行为型 主动观察到状态改变,从而发生变化,一对多的场景 抽象目标 、目标、抽象观察者、观察者 KVO、Notification
    状态模式 行为型 对象的行为取决于状态,环境类实际上就是拥有状态的对象,环境类有时候可以充当状态管理器(State Manager)的角色,可以在环境类中对状态进行切换操作 环境类、抽象状态类、具体状态类 设计模式系列9--状态模式
    策略模式 行为型 定义一系列算法,把它们一个个的封装起来,并且使他们可以相互替换。策略模式使得算法可独立于使用它的客户端而变化 环境类、抽象策略类、具体策略类 X模块中有个分段函数,A、B、C需要X模块支持,但是对X模块中的分段函数有不同要求,这时,你可以在X模块中写if、else语句、或者switch语句,但这样违反开闭原则,所以,更好的方式是把函数算法封装起来,作为参数传进去。

    相关文章

      网友评论

          本文标题:iOS知识复习笔记(15)---iOS常用设计模式

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