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






高煥堂.EIT

 
 

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

Framework-zz-40

    By 高焕堂 2013/06/01   

[Go Back]

[請指教:高老師的免費on-line教學視頻]  

                                                                                                               

Android & Framework:应用框架与平台框架开发技术   

 

 

包装通用性接口,定义特殊化新接口

 

1. 前言

       在上一篇文章<<软件通用性接口设计方法>>里,基于EIT造形做为设计通用性接口的起点。于此,将续述如何包装通用性接口,来得出比较特殊化的接口,提供给买主或用户的更个性化而贴心的服务,也减轻地头蛇(如App开发者)的负担。此外,地头蛇(如App开发者)也能运用相同的技巧,将强龙提供的接口(含通用性或特殊性接口)包装起来,改为自己定义的新接口,能大幅提升地头蛇的软件模块的跨平台性质。

 

2.  强龙擅用Stub类

  • 当<I>愈通用化时,就愈能容纳买主更大的选择范围(或空间)。
  • 当<I>愈特殊化时,则愈能提供给买主更个性化而贴心的服务。
  • 设计师如何兼顾未来性(通用性)和特殊性呢? 答案是:擅用Stub类(class)。
  • 强龙撰写Stub类来提供”比较特殊性”接口;其缩小一些买主的选择范围;同时因范围缩小,新增了一些共享性功能,就将新增功能写入Stub类里。
  • 因此,Stub类提供了更特殊性的接口,给予的更多功能,降低了地头蛇(开发<T>)的负担。
  • 例如,一个<E&I>设计如下:

 

  • 买主选择了Drawer,他委托地头蛇撰写<T>。

 

  • <E>透过<I>来调用<T>,间接调用到Drawer的功能。

 

  • 如上图所示,地头蛇撰写myDraw子类时,必须撰写"画背景"和"画前景"两个函数的代码。

  • 使用Stub类来包装通用性的IDraw接口。

  • 于是,设计一个Stub接口类,提供一个新接口(含有drawForeGround函数)。

  • 由于IDraw接口不能写入代码,而Stub类则可以写入代码;所以能将共通的部分写入Stub类里。

  • 这时,强龙帮地头蛇撰写了"画背景"的代码了;也就是drawBackGround()函数的代码,并放置于Stub类里。

  • 地头蛇已经看不到通用性的IDraw接口了,只要针对新接口去开发<T>即可。 

 

3.  地头蛇擅用Stub类

  • 刚才是强龙定义比较特殊的接口,来自己包装自己的通用性接口。
  • 地头蛇也能善用同样的技巧,运用Stub类来包装别人(强龙)的接口,定义出自己的接口。

  • 例如,有一个EIT造形如下: 

  • 地头蛇使用Stub类来包装强龙的特殊性接口。 [歡迎光臨 高煥堂 網頁: http://www.cnblogs.com/myEIT/ ] 

  • 于是,设计一个Stub类,为自己定义一个新接口(含有doDraw函数)。

  • 地头蛇已经看不到强龙的接口了,只要针对自己定义的新接口去开发<T>即可。 

  • 如果强龙像天子,则myStub类就实现了"挟天子以令诸侯"的效果,期将天子的接口包装起来,改为自己定义的接口。            

4.  结语

  • 强龙透过Stub类而将通用性接口包装为比较特殊性的接口。愈特殊性的接口,其提供给买主的选择<A>的空间就愈小,则<T>的差异性就愈小,因而会有更多的共同性,例如各<T>的都有相同的背景图。新增的共同性就能写入到Stub类里了。

  • 至于地头蛇,,则透过Stub类来达到"挟天子以令诸侯"的效果,将天子(即强龙)的接口包装起来,改为自己定义的接口;让自己的<T>不受制于天子所定义的接口。大大提升了<T>的变动自由度。◆  

[Go Back]

 

  

发表于 2013-08-31 16:43  高煥堂.EIT  阅读(321)  评论(0)    收藏  举报
 
刷新页面返回顶部