Android进阶-设计模式
目录
- 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层含义
- 子类可以实现父类的抽象方法,但是不能覆盖父类的非抽象方法。
- 子类中可以增加自己特有的方法。
- 当子类覆盖或实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
- 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。
子类可以实现父类的抽象方法,但是不能覆盖父类的非抽象方法。
AndroidNote 项目地址:venshine/AndroidNote 简介:Android 进阶笔记,包含常用的技术框架.博客社区.书籍等. 大纲 技术框架 图片加载 网络请求 数据库 ORM ... 原文地址:http://blog.csdn.net/u011240877 为了方便读者阅读以及自己回顾,总结写过的文章和一些想要写的文章目录如下: #1.Java Java 解惑:Comparable ... 前言 我们都知道面试大厂主要就是考察程序员技术方向的专业技能,Java开发主要考察的就是Java方面的专业技能,而Android岗位的 专业技能 就是Android程序员面试的重要考察方向. 大厂的招 ... 今天看到一篇文章,收藏了很多大牛的博客,在这里分享一下(转载于:http://blog.csdn.net/wujxiaoz/article/details/8237096) Android中文Wiki ... Android中文Wiki AndroidStudio-NDK开发-移动开发团队 谦虚的天下 - 博客园 gundumw100博客 - android进阶分类文章列表 - ITeye技术网站 CSDN ... 1.前言 Retrofit是什么?Retrofit是一个遵循RESTful设计的进行HTTP网络请求框架的封装,是现在Android端最火的进行网络请求的库.就像Volley是谷歌官方对HttpURL ... 本文转载自:Wei_Leng http://blog.csdn.net/u014608640/article/details/53063761 AndroidNote 项目地址:venshi ... Android中文Wiki AndroidStudio-NDK开发-移动开发团队 谦虚的天下 - 博客园 gundumw100博客 - android进阶分类文章列表 - ITeye技术网站 CSDN ... 独立博客版本请点击这里 勘误帖请点击这里 源码地址:https://github.com/henrymorgen/android-advanced-light 进阶三部曲第二部:http://liuw ...Android进阶-设计模式相关推荐
最新文章
热门文章