1、单例模式         : Aplication 对象

2、Template 模式:集成Activity类后,必须重写父类的方法,并且 父类的方法调用会按一定的顺序自动被调用(onCreate onResume onStop onDestroy)

3、适配器模式     :ListView或GridView的Adapter , 不同的数据提供者使用一个适配器来向一个相同的客户提供服务。

                                                     BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(new File("text.txt"))));  

                           InputStreamReader 也是一个适配器。 InputStreamReader和OutputStreamWriter就在字节流与字符流中起到了桥梁作用

 

4、观察者模式     :各种Listener  , 简介:一个对象发生改变时,所有信赖于它的对象自动做相应改变。

 

5、建造者模式     :为了避免过多的构造方法。window.buildOk().buildCancel().buildStatusBar().show(); ;系统的 AlertDialog.Builder

 

6、工厂模式        : 在使用方法decodeFile()/decodeResource()时,都可以指定一个BitmapFacotry.Options。通过不同的入参产生不同的产品

 

7、命令模式      :Handler.post后Handler.handleMessage

 

8、享元模式       :Message.obtainMessage通过重用Message对象来避免大量的Message对象被频繁的创建和销毁。

                            简介:运用共享技术有效地支持大量细粒度的对象。

 

9、迭代器模式  :如通过Hashtable.elements方法可以得到一个Enumeration,然后通过这个Enumeration访问Hashtable中的数据,

                           而不用关心   Hashtable中的数据存放方式。

 

10、备忘录模式  Activity的onSaveInstanceState和onRestoreInstanceState就是通过Bundle这种序列化的数据结构来存储Activity的状态,

                            至于其中存储的数据结构,这两个方法不用关心

                           简介:不需要了解对象的内部结构的情况下备份对象的状态,方便以后恢复。

 

11、原型模式    :比如我们需要一张Bitmap的几种不同格式:ARGB_8888、RGB_565、ARGB_4444、ALAPHA_8等。 

                            那我们就可以先创建一个  ARGB_8888的Bitmap作为原型,在它的基础上,通过调用Bitmap.copy(Config)来创建出其它几种格式

                            的Bitmap。另外一个例子就是Java中所有对象都有的一个名字叫clone的方法,已经原型模式的代名词了

                           简介:在系统中要创建大量的对象,这些对象之间具有几乎完全相同的功能,只是在细节上有一点儿差别。

 

12、代理模式    :事务处理。 简介:为其他对象提供一种代理以控制对这个对象的访问。

 

13、装饰模式  (Decorate): 文件IO操作 ,开发中,经常看到这各个类的嵌套关系

File f = new File("text.txt");
            InputStream  in = null ;
            in = new FileInputStream(f);//被FileInputStream装饰,多了一些功能,引用新的对象
             in = new DataInputStream(in);// 再次增加新功能(装饰)

            最后的对象任然是inputStream 但功能在一直增多

 

14、调解者模式 :Resource.getDrawable(resId)

 

                             简介:一个对象的某个操作需要调用N个对象的M个方法来完成时,把这些调用过程封装起来,就成了一个调解者,

                             举例:如Resource.getDrawable方法的实现逻辑是这样的:创建一个缓存来存放所有已经加载过的,

                            如果getDrawable中传入的id所对应的Drawable以前没有被加载过,那么它就会根据id所对应的资源类型,

                            分别调用XML解析器生成,或者通过读取包中的图片资源文件来创建Drawable。

                            而Resource.getDrawable把涉及到多个对象、多个逻辑的操作封装成一个方法,就实现了一个调解者的角色。

 

15、策略模式 :具体的规则在Comparator的匿名内部类或自定义的Comparator中实现

      Collections.sort(List list, Comparator c);

16、