首页 新闻 会员 周边 捐助

关于UI复用的问题

0
悬赏园豆:30 [已解决问题] 解决于 2013-02-20 17:59

假如我当前的项目中已经存在一个页面,如下:

此页面主要显示办公产品的信息。现在又需要显示食品的信息,并且显示的内容与上面的相同只是多了一个保质期字段。如下:

解决办法:

第1种,添加一个新的页面用于显示食品信息;

第2种,在原来的页面中,添加保质期标签。在后台控制是否显示。

第3种,添加一个ViewModel类,它包括办公产品信息和食品的所有要显示的内容。利用工具类根据不用产品类型实例化ViewModel。最后创建一个食品信息显示页,将ViewModel中的响应属性绑定到页面中。同时修改原来的办公产品页。

优缺点:

第1种优点:简单,代码干净。办公产品和食品的显示相互独立。

第1中缺点:UI重复,代码重复。办公产品和食品的信息都来源于同一个地方,因此后台绑定代码出现重复

第2种优点:不用添加新页面,大部分的后台代码得到复用。

第2种缺点:代码凌乱,不易维护。办公产品与食品的显示混合在一起。

第3种优点:代码干净。显示页面相互独立

第3种缺点:绑定代码有所重复,增加了代码复杂度。这种方法与第一种本质上几乎没有什么区别

请问这种情况一般怎么解决,谢谢?可能我又把简单的问题复杂化了,呵呵

华-子的主页 华-子 | 初学一级 | 园豆:156
提问于:2013-02-18 19:33
< >
分享
最佳答案
0

个人观点:当添加新元素对原来页面影响较大时(比如位置,大小,颜色搭配等)用第一种方案;当明显后续还有其他信息要追加,追加数目不好确定,并且对画面影响不大时用第三种;没什么特殊要求用第二种。

收获园豆:15
碧落星痕 | 小虾三级 |园豆:708 | 2013-02-18 21:11

目前我使用的是第2种方法,另外我想知道第3种和第一种的本质区别是什么?谢谢!这两种方法都需要添加一个新的页面

华-子 | 园豆:156 (初学一级) | 2013-02-19 09:14
其他回答(2)
0

如果可以的话,可以考虑写出所有属性,然后通过代码来控制某个属性是否显示

收获园豆:10
chenping2008 | 园豆:9836 (大侠五级) | 2013-02-18 22:02

”写出所有的属性“是什么意思?属性指的是所有需要显示的信息吗?写到什么地方?谢谢!

支持(0) 反对(0) 华-子 | 园豆:156 (初学一级) | 2013-02-19 09:11
0

统一实现输出接口 各类型去实现,来控制显示

收获园豆:5
Yu | 园豆:12990 (专家六级) | 2013-02-19 09:13

能具体点吗?谢谢!

支持(0) 反对(0) 华-子 | 园豆:156 (初学一级) | 2013-02-19 09:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册