Design Pattern in Android Sdk Source Code
参考链接:
一,组合模式
View + ViewPager
二,观察者模式
AbstractCursor
三,单例模式
输入法(InputMethodManager) 状态栏等
四,模板方法模式
View中的方法 onDraw() dispatchDraw()
public class View{ protected void onDraw(Canvas canvas) { } protected void dispatchDraw(Canvas canvas) { } //算法骨架 public void draw(Canvas canvas) { if (!verticalEdges && !horizontalEdges) { // 步骤1 if (!dirtyOpaque) onDraw(canvas); // 步骤2 dispatchDraw(canvas); // 步骤3 onDrawScrollBars(canvas); return; } } //... ...
五,备忘录模式
Canvas save() restore()方法
六,共享元模式
sqlite 请求sql,对于重复的sql的返回结果,会缓存。
客户端通过享元工厂获取享元对象,享元对象的创建则根据工厂的享元池来控制,如果有享元池中没有这个对象,则创建这个对象并保存到享元池中,如果享元池中有这个对象,则直接使用这个对象。因为享元对象在共享的同时,说明它重用属性的不变性,不然都是变化的东西,不存在共享,这些不变得属性我们称之为内部状态,独立与外部场景。
七,命令模式
封装了接受者和操作
new Thread(new Runnable(){}).start()
八,工厂模式
Asynctask中的ThreadFactory
private static final ThreadFactory sThreadFactory = new ThreadFactory() { private final AtomicInteger mCount = new AtomicInteger(1); public Thread newThread(Runnable r) { return new Thread(r, "AsyncTask #" + mCount.getAndIncrement()); } };
九,适配器模式
adapter
十,原型模式
Cloneable接口
十一,策略模式
暂时理解为多态的内涵
十二,建造者模式
builder
本文出自 “小新专栏” 博客,请务必保留此出处http://mikewang.blog.51cto.com/3826268/1395544
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。