该项目通过分析Android系统中的设计模式来提升大家对设计模式的理解,从源码的角度来剖析既增加了对Android系统本身的了解,也从优秀的设计中领悟模式的实际运用以及它适用的场景,避免在实际开发中的生搬硬套。如果你对面向对象的六大开发原则还不太熟悉,那么在学习模式之前先学习一下面向对象的六大原则是非常有必要的。
每一个模式在Android源码中可能有很多个实现,因此我们为每个模式创建一个文件夹,就是为了同一个模式可以有多个人分析,这样我们就可以从更多的源码中学习对应的模式,具体请参考编写步骤。我们的原则是通过分析这些源码不仅要学会设计模式本身,而且要通过学习该模式深入到Android源码层的实现,这样不仅学了设计模式,也增加了我们对于Android源码的了解。
QQ交流群: 413864859,希望大家踊跃参与进来。
- 填写任务表;
- 在模式对应的文件夹下以你的用户名建立一个文件夹,例如我分析的是适配器模式,那么我在adapter目录下建立一个mr.simple文件夹;
- 将template.md拷贝一份到adapter/mr.simple目录下,并且重命名为readme.md;
- 所需图片统一放到你的用户名文件夹的images目录下,例如adapter/mr.simple/images;
- 按照template.md的格式将模式分析的markdown文件编写完毕;
- 提交本地修改,将本地的提交push线上。
样例大家可以参考Mr.Simple的单例模式分析。
模式名 | 分析者 | 状态 |
---|---|---|
单例模式 | Mr.Simple | 完成 |
Builder模式 | Mr.Simple | 完成 |
外观模式 | elsdnwn、Mr.Simple | 完成 |
模板方法 | Mr.Simple | 完成 |
适配器模式 | Mr.Simple | 完成 |
观察者模式 | Mr.Simple | 完成 |
策略模式 | GKerison | 完成 |
代理模式 | singwhatiwanna | 完成 |
组合模式 | tiny-times | 撒丫子赶稿中 |
装饰模式 | tiny-times | 撒丫子赶稿中 |
享元模式 | lvtea0105 | 撒丫子赶稿中 |
迭代器模式 | Haoxiqiang | 完成 |
责任链模式 | AigeStudio | 完成 |
工厂方法模式 | AigeStudio | 撒丫子赶稿中 |
抽象工厂模式 | AigeStudio | 撒丫子赶稿中 |
状态模式 | Thinan | 撒丫子赶稿中 |
命令模式 | lijunhuayc | 待审核 |
桥接模式 | shen0834 | 撒丫子赶稿中 |
原型模式 | Mr.Simple | 待审核 |
模式名 |
---|
中介者模式 |
备忘录模式 |
解释器模式 |
访问者模式 |
模式名 | 文件夹 |
---|---|
适配器模式 | adapter |
抽象工厂模式 | abstract-factory |
桥接模式 | bridge |
Builder模式 | builder |
责任链模式 | chain-of-responsibility |
命令模式 | command |
组合模式 | composite |
装饰模式 | decorator |
外观模式 | facade |
工厂方法模式 | factory-method |
享元模式 | flyweight |
解释器模式 | interpreter |
迭代器模式 | iterator |
中介者模式 | mediator |
备忘录模式 | memento |
观察者模式 | observer |
原型模式 | prototype |
代理模式 | proxy |
单例模式 | singleton |
状态模式 | state |
策略模式 | strategy |
模板方法模式 | template-method |
访问者模式 | visitor |