目录

  • UML
  • 设计模式分类
    • 创建型模式
    • 结构型模式
    • 行为型模式
  • 设计模式六大原则
    • 本文主要参考链接
    • 单一职责原则
    • 里氏替换原则
    • 依赖倒置原则(DIP)
    • 接口隔离原则
    • 迪米特法则
    • 开闭原则
    • 设计模式原则总结
  • 设计模式分类
  • 单例模式
    • 单例三部曲
    • 饿汉式
    • 懒汉式
    • 双重检查
    • 静态类
  • 工厂模式
    • 定义
    • 实现
    • UML
    • 优点
  • 抽象工厂模式
    • 定义
    • 理解
    • UML
    • 实现
    • 优点
    • 缺点
    • 使用场景
  • 建造者模式
    • 定义
    • 建造者模式中的 4 个角色
    • UML
    • 实现
    • 优点
    • 使用场景
  • 代理模式
    • 定义
    • UML
    • 实现
    • 静态代理
    • 动态代理
    • 优点
    • 使用场景
  • 观察者模式
    • 定义
    • 自定义观察者模式
    • Java 中自带的观察者模式
    • 优点
    • 缺点
    • 使用场景
  • 适配器模式
    • 定义
    • 适配器模式中的 3 个角色
    • 实现
    • 类适配器
    • 对象适配器
    • 优点
    • 缺点
    • 使用场景

UML


设计模式分类

创建型模式

用于描述“怎样创建对象”,它的主要特点是“将对象的创建与使用分离”。GoF(四人组)书中提供了单例、原型、工厂方法、抽象工厂、建造者等 5 种创建型模式。

结构型模式

用于描述如何将类或对象按某种布局组成更大的结构,GoF(四人组)书中提供了代理、适配器、桥接、装饰、外观、享元、组合等 7 种结构型模式。

行为型模式

用于描述类或对象之间怎样相互协作共同完成单个对象无法单独完成的任务,以及怎样分配职责。GoF(四人组)书中提供了模板方法、策略、命令、职责链、状态、观察者、中介者、迭代器、访问者、备忘录、解释器等 11 种行为型模式。

设计模式六大原则

本文主要参考链接

单一职责原则

  • 定义: 一个类只有一个原因引起变化。也就是一个类只有一个职责,它就只负责一件事情。
  • 通俗理解: 例如类 A 负责两个不同的职责,分别是职责 B1 与职责 B2,当职责 B1 需要修改时,就会导致类 A 的修改,这样就有可能影响到职责 B2 的功能。为了解决修改职责 B1 影响职责 B2 的功能就有了“单一职责原则”,也就是可以根据“单一职责原则 ”分别创建类 A1 和类 A2,然后类 A1 负责职责 B1,类 A2 负责职责 B2,这样就解决了相互影响的问题。
  • 好处: 类的复杂性降低、可读性提高、可维护性提高、变更引起的风险降低

里氏替换原则

里氏替换原则

通俗的定义:所有引用基类的地方必须能透明地使用其子类的对象。

更通俗的定义:子类可以扩展父类的功能,但不能改变父类原有的功能。

里氏替换原则包含以下4层含义

  • 子类可以实现父类的抽象方法,但是不能覆盖父类的非抽象方法。
  • 子类中可以增加自己特有的方法。
  • 当子类覆盖或实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
  • 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

子类可以实现父类的抽象方法,但是不能覆盖父类的非抽象方法。

Android进阶-设计模式相关推荐

  1. Android 进阶笔记,包含常用的技术框架、博客社区、书籍等。

    AndroidNote 项目地址:venshine/AndroidNote 简介:Android 进阶笔记,包含常用的技术框架.博客社区.书籍等. 大纲 技术框架 图片加载 网络请求 数据库 ORM ...

  2. Android 进阶之路(我的博客文章目录)

    原文地址:http://blog.csdn.net/u011240877 为了方便读者阅读以及自己回顾,总结写过的文章和一些想要写的文章目录如下: #1.Java Java 解惑:Comparable ...

  3. 秋招Android进阶面经,面试10余家经验分享,拿到offer真不难

    前言 我们都知道面试大厂主要就是考察程序员技术方向的专业技能,Java开发主要考察的就是Java方面的专业技能,而Android岗位的 专业技能 就是Android程序员面试的重要考察方向. 大厂的招 ...

  4. 我的Android进阶之旅------经典的大客推荐(排名不分先后)!!

    今天看到一篇文章,收藏了很多大牛的博客,在这里分享一下(转载于:http://blog.csdn.net/wujxiaoz/article/details/8237096) Android中文Wiki ...

  5. 我的Android进阶之旅:经典的大牛博客推荐

    Android中文Wiki AndroidStudio-NDK开发-移动开发团队 谦虚的天下 - 博客园 gundumw100博客 - android进阶分类文章列表 - ITeye技术网站 CSDN ...

  6. Android进阶知识:Retrofit相关

    1.前言 Retrofit是什么?Retrofit是一个遵循RESTful设计的进行HTTP网络请求框架的封装,是现在Android端最火的进行网络请求的库.就像Volley是谷歌官方对HttpURL ...

  7. Android 进阶笔记。

    本文转载自:Wei_Leng      http://blog.csdn.net/u014608640/article/details/53063761 AndroidNote 项目地址:venshi ...

  8. Android进阶之旅:经典的大牛博客推荐

    Android中文Wiki AndroidStudio-NDK开发-移动开发团队 谦虚的天下 - 博客园 gundumw100博客 - android进阶分类文章列表 - ITeye技术网站 CSDN ...

  9. Android进阶三部曲 第一部《Android进阶之光》已出版(内含勘误)

    独立博客版本请点击这里 勘误帖请点击这里 源码地址:https://github.com/henrymorgen/android-advanced-light 进阶三部曲第二部:http://liuw ...

最新文章

  1. Lombok 原理分析与功能实现
  2. vue-music(1)音乐播发器 项目开发记录
  3. LGOJ P3919【模板】可持久化数组(可持久化线段树/平衡树)
  4. 【前端】JavaScript
  5. 程序员|听说你们都很好说话?你做几件事,就知道了!
  6. (53)FPGA条件选择(casez)
  7. mave构建docker镜像Dokerfile,上传华为云镜像服务器CCE
  8. Centos6.5搭建mongodb分片
  9. 签名相关文件是公司机密,在专机上由专人进行操作
  10. GIF图像动态生成-JAVA后台生成
  11. 网络安全技术(第4版)复习资料整理
  12. win7升级旗舰版密钥_WIN7无人值守应答文件的制作
  13. php cookie start,有关php session和Cookie问题session_start开启后做什么事?
  14. 词向量与词向量拼接_如何拥抱 embedding ?从词向量到句向量的技术详解-阿里云开发者社区...
  15. 数码管显示电路的设计
  16. 乐学python慕课答案_乐学英语演讲教程
  17. 2022最新苹果iOS证书制作教程
  18. 绿盟web应用防火墙(主机版)中国教育和科研计算机网,绿盟远程安全评估系统NSFOCUS RSAS...
  19. dta导入mysql_使用dta 实用工具优化数据库
  20. 13.56M刷卡芯片技术问答

热门文章

  1. PHP:对称加密及url加密应用
  2. 25:JMU-Python-分段函数2
  3. 关于Win7系统安装electron程序包,打开黑屏的解决办法。
  4. window电脑上同步展示示华为手机内容
  5. 虚拟服务器怎么解除锁屏,虚拟服务器怎么不设置锁屏
  6. ps怎么制作图片html,怎么将PS的图片制作成网页?
  7. 基于知识图谱的医疗诊断系统论文
  8. Pandas从小白到大师学习指南
  9. Linux文件目录简述以及文件系统大小的调整
  10. 2021年字节跳动+京东+美团面试总结!内含福利