By 高焕堂 2012/05/28
多层EIT造形 & 多层框架体系
1. 复习:单层框架与多层框架体系
在之前的<五子棋>框架范例中,我们自己建立了一个<单层>框架体系,如下图:
这范例说明了,我们已经会藉由EIT造形来思考单层框架设计了。在本文里,将进一步阐述如何将EIT造形组织起来,成为多层EIT造形。然后藉由多层EIT造形来思考如何规划多层级框架体系。除了建构自己的多层框架之外,我们也能将上述自己的框架,融入到Android大框架里,成为跨公司(或跨团队)的多层框架体系。许多公司也都是这样做的,例如PhoneGap公司就建立一个跨OS平台的小框架;如下图所示:
接下来,我们就来介绍如何设计多层级的EIT造形和框架体系了。
2. 建立多层EIT造形与框架体系
从之前的文章和<五子棋>框架范例中,你已经知道如何基于EIT造形而建立一个框架。由于EIT造形本身具备重复组合的特性,其意味着,能够组合而成为多层级的EIT造形。然后,基于多层级的EIT造形,就能顺利建立(定义)出多层级(Multi-Layer)的框架体系了。其中,有两种途径:”巢状结构”和”插入Stub”。
3. 途径一:巢状结构
让<T>里内含一个小EIT造形。例如,有一个单层的EIT造形,如下图:
此时,只要让<T>里内含一个小的EIT造形,就成为双层的EIT造形了。
其中,最简单的结构就是:大EIT造形的<T>等于小EIT造形的<E>,就成现出最简单的双层EIT造形了。
上图是采取一般的EIT造形结构。如果改为”子类extends基类”的结构,就如下图所示:
上述两个图的涵意是一致的。重复上述的规则和步骤,就能建立出更多层级的EIT造形体系了。就像在Android框架里,也处处可见到多层级的EIT造形结构,例如:
其中的GLSurfaceView既扮演上层EIT造形的<T>,又扮演下层EIT造形的<E>。就是一个简单的双层EIT造形了。
这两层EIT造形都属于Android平台的Java层应用框架(Application Framework)的内容。这两层EIT造形都是Android团队所开发的。由于Android是十分开源又开放的平台,人人(或各厂商)皆能接Android里的EIT造形,而扩充出自己的EIT造形,成为自己设计和开发的小框架。例如,PhoneGap就是有第三方公司所扩充出来的小框架,来实践跨平台(如Android、iOS等)的功能;如下图所示的多层级EIT造形。 [歡迎光臨 高煥堂 網頁: http://www.cnblogs.com/myEIT/p/3294344.html ]
其中,最简单的结构就是:大EIT造形的<T>等于小EIT造形的<E>,就成现出最简单的双层EIT造形了。
4. 途径二:插入Stub(即<E&I>)
在<T>与<I>插入一个新的<E&I>。例如,有一个单层的EIT造形:
在<T>与<I>之间插入一个新的插件(Stub),就如下图:
这个Stub既扮演<T>又扮演<E&I>的角色,如下图:
这个Stub既是上层EIT造形的<T>,同时又是下层EIT造形的<E&I>。于是,你可以发现,上述两个途径是殊途同归的,就如下图所示:
例如,Android的典型结构,如下:
这图里的onTransact()就是EIT造形里的<I>。这是标准的EIT造形,其<I>是支持<基类/子类>之间IoC调用的接口。运用曹操(Stub)类,形成两层EIT(两层框架)。
在搭配Proxy类,而成为Prpxy-Stub模式,如下图所示:
这个Proxy-Stub模式就成为小框架的基础了。其典型架构为:
也就有机会落实”挟天子以令诸侯”的有利策略了;如下图:
5. 结语
就狭义来说,造形与框架式不一样的。但是,广义来说,框架可视为较大的造形;而EIT造形可看成最小的框架;而且两者都能直接落实为代码。由于多层框架体系的组成元素,也就是多层EIT造形;所以我们可以藉由多层级的EIT造形体系来思考和规划多层级的框架体系。◆
[Go Back]