假如我当前的项目中已经存在一个页面,如下:
此页面主要显示办公产品的信息。现在又需要显示食品的信息,并且显示的内容与上面的相同只是多了一个保质期字段。如下:
解决办法:
第1种,添加一个新的页面用于显示食品信息;
第2种,在原来的页面中,添加保质期标签。在后台控制是否显示。
第3种,添加一个ViewModel类,它包括办公产品信息和食品的所有要显示的内容。利用工具类根据不用产品类型实例化ViewModel。最后创建一个食品信息显示页,将ViewModel中的响应属性绑定到页面中。同时修改原来的办公产品页。
优缺点:
第1种优点:简单,代码干净。办公产品和食品的显示相互独立。
第1中缺点:UI重复,代码重复。办公产品和食品的信息都来源于同一个地方,因此后台绑定代码出现重复
第2种优点:不用添加新页面,大部分的后台代码得到复用。
第2种缺点:代码凌乱,不易维护。办公产品与食品的显示混合在一起。
第3种优点:代码干净。显示页面相互独立
第3种缺点:绑定代码有所重复,增加了代码复杂度。这种方法与第一种本质上几乎没有什么区别
请问这种情况一般怎么解决,谢谢?可能我又把简单的问题复杂化了,呵呵
个人观点:当添加新元素对原来页面影响较大时(比如位置,大小,颜色搭配等)用第一种方案;当明显后续还有其他信息要追加,追加数目不好确定,并且对画面影响不大时用第三种;没什么特殊要求用第二种。
目前我使用的是第2种方法,另外我想知道第3种和第一种的本质区别是什么?谢谢!这两种方法都需要添加一个新的页面
如果可以的话,可以考虑写出所有属性,然后通过代码来控制某个属性是否显示
”写出所有的属性“是什么意思?属性指的是所有需要显示的信息吗?写到什么地方?谢谢!
统一实现输出接口 各类型去实现,来控制显示
能具体点吗?谢谢!