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也是可取的
*******************************************************************************
如何选择?
没有“正确答案”!
- UI组件设计:减少冗余代码--类继承关系的考量
- UI设计理念: 减少类继承关系,增加某种程度的代码冗余,换取类之间的独立性(某种意义的解耦))
- 类设计要点: 变量/函数的命名要泛化,减少代码”冗余“
- c#编译器的减少冗余代码优化
- 使用APT减少MVP的冗余代码
- 用 Groovy 减少代码冗余
- 程序如何做到代码复用,减少代码冗余,从而减少代码修改的成本?
- React Native之如何优化组件来达到减少代码冗余
- 减少冗余的小技巧
- Flex组件的继承关系
- Java Lombok 减少代码冗余 利刃
- UI组件设计方案: 大幅减少与外观相关的属性
- iOS 中UI部分一些类的继承关系
- 解决Android中顶部title功能重复问题,减少代码冗余的功能
- 减少冗余计算的优化对比
- ios中UI控件的继承关系
- Swing常用组件的继承关系
- mooon调度器设计的考量因素
- Android Activity之间的跳转
- 集合的知识及一道练习题
- [iOS]使用Audio Queue Services 播放和录制音频
- hadoop2.2.0 hadoop-auth pom文件中的一个 bug
- php面向对象之多态
- UI组件设计:减少冗余代码--类继承关系的考量
- Android Sqlite Upgrade
- 2014年4月1日Linux学习日志--安装mysql
- (转) 更改SQLServer实例默认字符集
- c 中typedef函数的用法
- nodejs使用jquery风格环境安装
- Spring中transactionAttributes的详解
- 树莓派学习笔记——RPi.GPIO 流水灯
- 背包问题(Knapsack problem)之01