美文网首页Android开发经验谈
Android 设计模式思想---汇总

Android 设计模式思想---汇总

作者: liys_android | 来源:发表于2019-08-24 11:39 被阅读8次

    更新中.......
    刚开始学设计模式的时候, 一上来直接看别人的文章直接开撸.
    问题描述:

    1. 学的时候感觉还不错, 能理解的了, 但是很容易忘记, 学了后面的就忘了前面的, 或者一段时间没接触设计模式以后, 很多东西都忘了, 更别提在项目中使用了;

    2. 看着别人的文章好像知道是这么回事, 但是就是不知道在项目中什么情况使用什么设计模式. 反正就是一脸懵逼, 似懂非懂的感觉,

    借用古人的话: 学而不思则罔,思而不学则殆;
    思考: 为什么会出现这样的问题?
    我们太关注代码的实现, 而忽略了设计模式的本质.

    我们学习设计模式的目的?

    1. 为了看懂系统源码或第三方优秀框架源码.
    2. 为了解决项目中碰到的问题.
    3. 面试(搞定上面2点, 面试应该问题不大).
    4. 自己封装一些东西的时候, 或许会用到.
    5. 其它的暂时没想到.

    设计模式的本质
    就是为了解决特定的问题.

    既然是特定的问题, 那我们只需要关注什么设计模式解决的是什么问题就可以了; 不需要关注代码的实现过程. 代码实现过程过一遍即可.

    1. 创建型模式:

    关注的是对象的创建

    设计模式 说明 伪代码
    单例模式 保证整个程序中只有一个实例 A a = A.getInstance()
    Builder模式 解决问题: 对象参数比较多,初始化比较麻烦 , 例如OkHttp中, OkHttpClient初始化过程 A a = A.Builder().builder()
    工厂模式 把对象创建的过程封装起来, 调用者不需要关注封装过程, 想拿哪个对象就直接去拿 A a = Factory.createA();
    原型模式 copy(复制)已有的对象来创建的新的对象,从而节省时间和内存 A a2 = a.copy()
    2. 结构型模式
    设计模式 解决的问题
    适配器模式 A需要和a才能正常工作, 通过适配器将b转成a, 再传给A.
    装饰模式 java只能单继承, 在不使用的继承的方式下, 扩展对象的功能, 例如: ListView和RecyclerView添加头部和尾部
    桥接模式
    组合模式
    外观模式
    享元模式
    代理模式 A要访问a, A--->B(代理)--->a, 这个过程B代理可以做一些扩展性的东西
    3. 行为型模式
    设计模式 解决的问题 简单例子
    模版设计模式 让流程更加规范, 先做什么, 后做什么 Activity生命周期, 按照先后顺序执行
    命令模式
    迭代器模式 容器对象A提供一个迭代器, 可以按顺序访问A中各个元素,同时不需暴露A的内部细节
    观察者模式 ABC同时观察a, 如果a变化, ABC都会收到通知
    中介者模式
    备忘录模式
    解释器模式
    状态模式
    策略模式 同级的东西可以互相切换
    责任链模式
    访问者模式

    相关文章

      网友评论

        本文标题:Android 设计模式思想---汇总

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