以横纵滚动条为例。
在类继承关系的设计中,就是如下关系
BaseScroll
|
|-------------------|
HScroll VScroll
BaseScroll中将抽象出HScroll/VScroll的共性。
有一种设计思路:在BaseScroll中根据定义的某个“横纵标志”,把横纵两种逻辑都写在其中。这样HScroll/VScroll中的代码将最少。
另一种设计思路:在BaseScroll中根据没有横纵相关的代码,横纵两种逻辑分别写在HScroll和VScroll中。这样BaseScroll似乎有共性抽象不足之嫌。
在为WebApp设计UI组件时,取后者。
===============================================
理由:
在WebApp的UI中,横纵滚动条很少同时被应用。纵向滚动条应用的场景要远大于横向滚动条(通常,从美观和用户体验角度出发,我们都是设置足够宽,不让UI组件出现横向滚动条)
如果采用思路1,无疑纵向滚动条中有不需要的横向逻辑,反之亦然。
在最求UI组件体积最小的目标下,思路2是合理的选择。
UI组件设计:减少冗余代码--类继承关系的考量,布布扣,bubuko.com
原文:http://blog.csdn.net/tiangej/article/details/22716609