目录

  • 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. ViewGroup的Touch事件分发(源码分析)
  2. NCBI|转录组原始数据上传
  3. Nature封面重磅!剑桥大学团队揭开老年痴呆背后的罪魁祸首
  4. ExecutableNotFound: failed to execute ['dot', '-Tsvg'], make sure the Graphviz executables are on yo
  5. 基金指数温度怎么算_成都冬季想装明装暖气片那究竟价格应该怎么算?
  6. 逻辑电平0和1的世界
  7. java体系技术框架_java框架之Spring 核心框架体系结构
  8. 搭建xxpay支付平台
  9. linux 脚本 等待,shell tel脚本中执行等待实现
  10. 利用python获取nginx服务的ip以及流量统计信息
  11. 【论文投稿】SOTA论文也未必能被接收,谷歌科学家Eric Jang谈顶会审稿标准
  12. ubuntu 18.04 解决无法联网的问题
  13. 十二进制加计数器-20151112
  14. 复利思维,静待时间的玫瑰慢慢绽放
  15. 比风水厉害100倍的宇宙规律,你懂多少?
  16. android7.0 root教程,小米4S(全网通 安卓7.0)一键ROOT详解教程,看教程ROOT
  17. 副高相当于副处吗_事单副高职称相当于副处待遇?别逗了,连公务员副科实职都不如...
  18. (附源码)ssm自助游服务系统 毕业设计 250858
  19. 云-腾讯云:实时音视频
  20. android JavaMail报错:SendFailedException: No recipient addresses

热门文章

  1. 微信小程序获取用户信息接口
  2. P22-c++自己设计一个队列
  3. 战神笔记本电脑自带access吗_科技犬盘点:多款新品笔记本、台式机发布 选AMD还是英特尔?...
  4. 研究生学术与职业素养讲座第1-10讲
  5. 好一点的计算机课程,要上好一节信息技术课,先做好这四点
  6. 全媒体营销:多渠道推广、全方位沟通的未来之道
  7. 这是智能硬件开发门槛被降得最低的一次
  8. 自动发送生日祝福短信 php,抖音很火的文字情话 2019抖音最火自己生日祝福语
  9. 2021转行做短视频运营可行吗
  10. vscode注释快捷键失效且无键位冲突时解决方案