By 高焕堂 2013/06/01
包装通用性接口,定义特殊化新接口
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]