UI组件设计:减少冗余代码--类继承关系的考量

来源:互联网 发布:淘宝我的积分查询 编辑:程序博客网 时间:2024/05/22 02:08

以横纵滚动条为例。

在类继承关系的设计中,就是如下关系

 

             BaseScroll

                    |

        |-------------------|

    HScroll              VScroll

 

BaseScroll中将抽象出HScroll/VScroll的共性。

有一种设计思路:在BaseScroll中根据定义的某个“横纵标志”,把横纵两种逻辑都写在其中。这样HScroll/VScroll中的代码将最少。

另一种设计思路:在BaseScroll中根据没有横纵相关的代码,横纵两种逻辑分别写在HScroll和VScroll中。这样BaseScroll似乎有共性抽象不足之嫌。

 

****************************************************************************

在为WebApp设计UI组件时,取后者。

理由:

在WebApp的UI中,横纵滚动条很少同时被应用。纵向滚动条应用的场景要远大于横向滚动条(通常,从美观和用户体验角度出发,我们都是设置足够宽,不让UI组件出现横向滚动条)

如果采用思路1,无疑纵向滚动条中有不需要的横向逻辑,反之亦然。

在最求UI组件体积最小的目标下,思路2是合理的选择。

 

******************************************************************************

反对:

类继承使得完整的逻辑执行思路产生断层和跳跃,代码可读性降低,维护难度增加。

且类似的逻辑分散在诸如HScroll/VScroll的不同类中。一旦类似的逻辑需要修改,则要修改多处。类似的逻辑代码不能集中在一处,容易产生差异,容易遗漏。

在不给UI组件体积带来很大影响的前提下,思路1也是可取的

 

*******************************************************************************

如何选择?

没有“正确答案”!

 

 

 

 

0 0
原创粉丝点击