第 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 ~

