第 1 天

框架开发者学习指南(Day-01)

-- 从主板模式(MB Pattern)出发

 

学习步骤:

Step 1.1 请你扮演<框架开发者>角色,依循主板模式(Motherboard pattern),首先定义一个通用性接口,并以Java语言表示之。如下图:

(图1-1)

例如:

//定义ISP接口

package ws.service;

public interface ISP {

    String onExecute(int code, String data );

} 

Step 1.2 请你扮演<App开发者>角色,以Java撰写类(Class)去实现它。如下图:

(图1-2) 

例如:

// 撰写myService类来实现ISP接口

package ws.service;

public class myService implements ISP{

    public String onExecute(int code, String data) {

        return “OK” ;

    }

} 

Step 1.3 以Java撰写一个类(例如ServCTRL)去使用ISP接口去掉用myService的实现函数(和代码)。如下图:

(图1-3) 

Step 1.4 于是,出现了典型的主板模式结构了。如下图:

(图1-4) 

Step 1.5 其中的主板模式就成为框架的要素了。如下图:

 (图1-5a)

也就是,ServCTRL和<I>两者组合起来,成为框架基本要素了:

(图1-5b)

Step 1.6 而myService则成为App的基本要素。如下图:

(图1-6) 

Step 1.7 请你扮演<App开发者>的角色,以Java撰写myActivity子类,它继承Android框架里的Activity父类(又称为基类)。这myActivity类和myService类都成为App的一部份了。如下图:

(图1-7a)

  由(软件)框架主板(即ServCTRL类和<I>接口)组合了外围碎片(即App的myService类):

(图1-7b) 

Step 1.8 请你扮演<App开发者>的角色,以Java撰写myActivity子类里的代码。由myActivity来创建ServCTRL类的对象。如下图:

(图1-8a)

此时,myActivity就可参考到ServCTRL的对象。如下图:

(图1-8b)

Step 1.9 接着由myActivity来创建myService类的对象。如下图:

(图1-9a)

此时,myActivity就可参考到myService的对象。如下图:

(图1-9b)

Step 1.10 接着,由myActivity调用ServCTRL的addT()函数,将<T>装配到<E>里,就如同将轮胎装配到汽车的引擎上一样。如下图:

(图1-10a) 

此时,ServCTRL就可参考到myService对象。如下图:

(图1-10b) 

Step 1.11 <T>与<E>已经结合起来了,myActivity就能调用<E>的execute()函数,进而经由ISP接口而调用到<T>的onExecute()函数了。如下图:

(图1-11) 

Step 1.12 实操演练:在Android平台上,将上述个步骤,以Java来进行编程,将其落实为代码,并实际执行之。

 

Step 1.13 观摩与讨论:先听高焕堂老师的视频微课,其详细讲解Android平台上的ListView和SurfaceView框架。观摩的视频微课,包括: 

     

  微课-1(请点击此图,立即体验)   微课-2(请点击此图,立即体验)

1. 在学习微课和观摩技术的过程中,可随时与ADT老师群一起讨论交流。

2. 例如,针对这些框架,讨论其幕后使用了那些设计模式(如MB模式、Factory模式等),以及其他自选的议题等。 

~ End ~