By 高焕堂 2012/05/28
认识多层框架体系
1. 框架的分层(Layering)
人们通常会依据自己选定的视角或观点(View)而来对事物进行分层(Layering)。由于人人的视角并不相同,其分层的结果也就见仁见智了。其中,最常见的两个观点是:1)企业分工(Collaboration)的视角; 2)领域知识(Domain Knowledge)的视角。
1.1 企业分工的视角
本来框架的主要功用,就是要将App发包给第三方开发者,也就是支持外包分工的策略。尤其在移动互联网时代里,App Store市场机制日益成熟,第三方开发者成为软件产业的生力军。外包企业面临挑战,只要发挥App Store 分工策略,设计精致的行业应用框架和API来支持之,就是一条鸟语花香之路。例如,在航空、医疗等特定行业里,一家外包企业Y承接了业主X的应用开发项目,在当今的HTML5潮流下,Y可基于Java Plugin机制来提供 API给第三方(或特约的)开发者Z写HTML5_JS应用程序。如此,外包企业Y反而有机会成为该行业的主导者。从App Store的分工策略,可以更能了解应用框架的开发要点,例如在Android + HTML5移动平台上落实API设计。并落实云端大数据时代的外包分工策略。[歡迎光臨 高煥堂 網頁: http://www.cnblogs.com/myEIT/ ]
框架与App分工策略,就是俗称的<强龙/地头蛇>分工策略。
从这视角而观之,只有一层框架和一层App。所以称为<单层>框架体系。
如果强龙又分为:大强龙和小强龙。其中,大强龙做大框架,而小强龙做小框架;就形成双层框架体系了。例如,PhoneGap公司就在Android大框架里,建立了自己的小框架,成为小强龙了,如下图:
兹以三国演义里,对曹操角色的定位,来做比喻,就如下图所示:
依据这项曹操的高度智慧,将之应用于软件框架开发上,就能学习PhoneGap小强龙,在天子(Google)大强龙之下,建立小框架,成为小强龙;如下图:
更珍贵的是,小强龙拥有”挟天子以令诸侯”的空间和机会。
1.2 领域知识的视角
所谓领域知识(Domain Knowledge)的区分,也是因各人视角而不同了。有些是关注于业务领域的不同,而有些则偏重于技术知识的差别。例如,在Android里,虽然Java语言具有简单容易之美,但是其执行效率比C++低。为了追求力与美的组合,Android平台就采取双层框架体系;例如,建立出Java和C++并存的双层框架。如下图:
不仅如此,Android还扩大到更多层级的框架体系。如下图:
Android的官方架构图:
2. 结语
人人都可以建立自己的大框架,也能基于别人既有的大框架而开发小框架,并寻求机会落实”挟天子以令诸侯”的空间和机会;因而形成了多层框架体系。 一旦有机会和空间来建立自己的框架了,就能依据业务(Business)知识或技术(Technical)知识的差异来建立自己的多层框架体系。因而,当今主流平台如Android、iOS和Win-8等都采取多层框架体系。◆
[Go Back]