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

以横纵滚动条为例。

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

 

             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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值