GithubHelp home page GithubHelp logo

linving / android_design_patterns_analysis Goto Github PK

View Code? Open in Web Editor NEW

This project forked from simple-android-framework-exchange/android_design_patterns_analysis

0.0 1.0 0.0 504 KB

an Android design patterns analysis repository

android_design_patterns_analysis's Introduction

Android源码设计模式分析开源项目

简述

该项目通过分析Android系统中的设计模式来提升大家对设计模式的理解,从源码的角度来剖析既增加了对Android系统本身的了解,也从优秀的设计中领悟模式的实际运用以及它适用的场景,避免在实际开发中的生搬硬套。如果你对面向对象的六大开发原则还不太熟悉,那么在学习模式之前先学习一下面向对象的六大原则是非常有必要的。

每一个模式可能在Android源码中有很多个实现,因此我们为每个模式创建一个文件夹,文件夹中为分析这个模式的markdown文件,该文件的命名规则为: 模式名-分析者.md, 例如: adapter-mr.simple.md。我们的原则是通过分析这些源码不仅要学会设计模式本身,而且要通过学习该模式深入到Android源码层的实现,这样不仅学了设计模式,也增加了我们对于Android源码的了解。

QQ交流群: 413864859,希望大家踊跃参与进来。

编写步骤

  1. 填写任务表;
  2. 在模式对应的文件夹下以你的用户名建立一个文件夹,例如我分析的是适配器模式,那么我在adapter目录下建立一个mr.simple文件夹;
  3. 将template.md拷贝一份到adapter/mr.simple目录下,并且修改为readme.md;
  4. 所需图片统一放到你的用户名文件夹的images目录下,例如adapter/mr.simple/images;
  5. 按照template.md的格式将模式分析的markdown文件编写完毕;
  6. 提交本地修改,将本地的提交push线上。

样例大家可以参考Mr.Simple的单例模式分析

任务表

模式名 分类 分析者
单例模式 singleton Mr.Simple
Builder模式 builder Mr.Simple
外观模式 facade elsdnwn
模板方法 template-method Mr.Simple
适配器模式 adapter 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

参考资料

android_design_patterns_analysis's People

Contributors

hehonghui avatar linving avatar qwertxyz avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.