EIT造型下的Factory模式(二)

前言:

         上篇博客谈到了TM模式在Android中的使用情况,本篇博客继续讨论Android中常用到的Factory(工厂)模式。

 

一、Factory(工厂)模式

先上factory(工厂)模式uml图形:

EIT造型下的Factory模式(二)

工厂设计模式分为两部分,生产者(factory)与消费者(product),每一个ConProduct都是由ConCreater创建出来的,整个工厂设计模式是由两个EIT造型组合而成的。

(1)      FactoryClassonOptionMethod()方法调用了create()函数,

(2)      FactoryClasscreate()函数通过IOC机制回调ConcreateClass类里面的create()函数从而拿到ConProduct的对象;

(3)      ConProduct就作为一个消费者被ConcreateClass创建出来了。

 

Android中常见的FMFactory)设计模式:

Android中我们也经常用到FM设计模式,只不过平时我们只管写代码,而很少去发掘其中的设计模式,现在就拿常见的Android代码来看看FM设计模式的应用:

EIT造型下的Factory模式(二)

Android中经常用到的界面绘制就是一个典型的工厂设计模式,如上图:

(1)      Android框架层的ActivityE)中onCreate()I)函数通过IOC机制回调myActivityT)类里的onCreate()函数;

(2)      在myActivty类中通过new出一个类myView

(3)      myViewT)类被Android框架层ViewE)通过IOC机制回调后交给了WMS(windowManagerService)处理最终显示到界面

(4)      通过以上的myActivity创建了myView的过程,两个EIT造型组合出了FMfactory)模式;

 

 

三、Android中跨进程的FM设计模式应用:


EIT造型下的Factory模式(二)

Android中经常会用到跨进程通信,这个时候对Binder的使用就会比较多,通过上面UML 图可以看出常见的创建Binder的创建过程

(1)      myService在执行onStart函数的时候会去new一个myBinder;

(2)      创建了myBinder之后,Android框架就会回调onTransact函数,在Android框架层是通过execTransact函数来调用的;

(3)      Android框架层会去执行Binder构造函数,里面会调用Init函数,Init函数就去通过JNI执行c/c++代码喽,于是跨进程通信就顺利的跨过了语言障碍;

(4)      通过以上分析,跨进程通信中Binder的创建是通过myService在执行onStart函数的时候new出来的,因此myService与框架层的Service就组合成了工厂EIT,而myBinder和框架层Binder就组合成了消费者EIT,前后相应,构成一个完整的工厂(FM)设计模式。

EIT造型下的Observer模式(三)

好了,本篇博客已经叙述完毕,欢迎关注我的博客。