• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






高煥堂.EIT

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

Framework-zz-21

By 高焕堂 

ee                                                                   ee 

【思考Android技术】 

 請參考:Android从程序员到架构师之路课程(在线视频学习) 

 请进入:ADT架构师学苑  

ee                                                                    ee

深入领悟IBinder通用性接口,设计出自己的架构未来性

   

     在前面几篇文章以,我们观摩和学习了IBinder、IPlugin等通用性接口设计。于此将进一步带您领悟这些通用性接口的幕后结构。从这幕后结构,您更能理解如何创造出架构的未来性。以软件专业术语来说,这未来性就是系统(或架构)的重构(Refactoring)自由度。 

 

1. 通用性接口的涵意

   “通用性”与”特殊性”其实只是相对性而已。在下图里的<I-1>接口,可明显看出它是专属于<Client-1, Server-1>的特殊性接口。 

        

     随着企业业务需求的增加,软件系统会含有愈来愈多的特殊性接口;如下图里的<I-1>、<I-2>和<I-n>等。 

       

    为了整合这些众多的特殊性接口,通常会设计出通用性接口,来试图统一他们,进而监控(Monitor)它们。如下图里的IMS就是一个通用性接口了。 

  

    其实,通用性接口常常示成双成对的,例如上图里的<IMS>是对 Client端的通用性接口;此外,还常常设计一个对 Server端的通用性接口,它就是大家熟悉的EIT造形里的<I>了。如下图所示。

    

        上述的架构,看来颇为合理而美好。那么,又如何设计这两个通用性接口的内涵呢? 那么,又如何从通用性的<I>转换成为<I-1>、<I-2>等特殊性接口呢? 这就是本文的焦点了。接下来,将针对<I>来探讨其设计思维和方法。 

 

2. 通用性接口创造了<重构自由度>

      框架设计的两项关键议题是:

  • 架构设计如何迅速落实为代码。
  • 架构师团队如何给自己创造重构的自由度,以及支持开发者重构的空间。 

2.1  迅速落实为代码

    架构师以EIT代码造形表述设计;让开发者直接对应到代码。代码造形就如同专块,建筑师叙述如何以砖块组合出形形色色的建筑物;施工者就烧出专块,并按步就班组合起来。其中,EIT造形成为架构思考的简单元素,然后从简单中组合出复杂架构,而框架则是产出的代码层级的架构(亦即,计算机可执行架构)。

     基于EIT造形,架构师和开发者都能从简单组合出复杂。亦即:造形很简单,内涵可复杂,重复地组合。让用户获得从简单中叫出复杂的满足感。亦即:优质的用户体验。

 

2.2 重构的自由度

      架构师团队如何给自己创造重构的自由度,以及支持开发者重构的空间,是框架设计的关键议题。这种自由度,决定于架构师是否能仔细分辨出:关注<未来的决策>与关注<今天决策的未来性>的微妙差异了。愈是能关注<今天决策的未来性>,而不是关注<未来的决策>,就愈能创造未来重构的自由度。例如,EIT造形和框架的主角都是接口<I>,愈是关注<目前决策的未来性>时,就愈会想去设计通用性(General)<E>和<I>来包容未来<T>的多变化。而一群<E&I>的巧妙组合,就成为框架了。[ 认识EIT造形 ]

    由于EIT造形具有重复组合的特性,人们可以组合出多层级EIT造形体系的结构,进而设计出多层级的框架,就能创造更大的重构自由度。例如,上层EIT造形的<I>能包容用户需求<T>的未来变化;而底层框架则能包容系统平台特殊模块<T>的未来变化。用户需求与平台模块之间藉由两层EIT造形的通用性<I>来衔接与组合,而创造了弹性的重构空间。 ◆ 

[Go Back]

 

发表于 2013-11-09 07:16  高煥堂.EIT  阅读(268)  评论(0)    收藏  举报
 
刷新页面返回顶部