我将以《设计模式:可复用面向对象软件的基础》为准,发掘android中各种设计模式的使用情况,提取核心部分,做为实例。
因为不需要写代码,应用场景又一般是android中自带的,所以文中可能会注重意图介绍和UML结构图的绘制,然后具体设计模式的本身和扩展还需要各位参考其他资料。
下面我列举一些重要的认识点:
设计模式,提供了很多软件工程问题所需处理的解决方案。

根据模式的目的可分为3类:

1.创建型模式:与对象的创建有关。
2.结构性模式:处理类与对象的组合。
3.行为性模式:对类或对象怎样交互和怎样 分配职责进行描述。

面向对象设计的2个基本原则:

1.针对接口编程,而不是针对实现编程。
2.优先使用对象组合,而不是类继承。

面向对象设计的5个设计原则:

1.单一职责原则(SRP)
2.开放封闭原则(OCP)
3.Liskov替换原则(LSP)
4.依赖倒置原则(DIP)
5.接口隔离原则(ISP)

23中设计模式:

1.创建型模式:
(1).工厂方法模式
(2).抽象工厂模式
(3).创建者模式
(4).原型模式
(5).单例模式
2.结构型模式:
(6).适配器模式
(7).桥模式
(8).组合模式
(9).装饰模式
(10).外观模式
(11).享元模式
(12).代理模式
3.行为型模式
(13).解释器模式
(14).模板方法模式
(15).职责链模式
(16).命令模式
(17).迭代器模式
(18).中介者模式
(19).备忘录模式
(20).观察者模式
(21).状态模式
(22).策略模式
(23).访问者模式
除此之外,后来人发现很多新的模式,如空模式等。
下面列举几个常见的问题导致重新设计,可能需要设计模式来分析解决:
1.通过显示的指定一个类来创建对象
2.对特殊操作的依赖
3.对硬件和软件平台的依赖
4.对对象表示或实现的依赖
5.算法依赖
6.紧耦合
7.通过生产子类来扩展功能
8.不能方便的对类进行修改

软件的设计臭味:

1.僵化性
2.脆弱性
3.顽固性
4.粘滞性
5.不必要的复杂性
6.不必要的重复
7.晦涩性
… …
总而言之,一句话,面向对象特性+原则+模式,折腾来折腾去就是这么个回事。
[yellow_box]

Android设计模式系列

  • 【Android设计模式系列】介绍 引言总览
  • 【Android设计模式系列】SDK源码组合设计模式
  • 【Android设计模式系列】SDK源码观察设计模式
  • 【Android设计模式系列】SDK源码单例设计模式
  • 【Android设计模式系列】SDK源码模板方法模式
  • 【Android设计模式系列】SDK源码备忘录模式
  • 【Android设计模式系列】SDK源码享元模式
  • 【Android设计模式系列】SDK源码命令模式
  • 【Android设计模式系列】SDK源码工厂方法模式
  • 【Android设计模式系列】SDK源码适配器模式
  • 【Android设计模式系列】SDK源码原型模式
  • [/yellow_box]