标签:
这两天在做个图形方面的小程序,UI设计简直烦透我了。可能是受到设计模式的影响,之前也一直是这样,总想着“耦合”什么的,结果我把程序数据、程序部件和UI部分的关系搞成如下了:
其中数据部分作为中间部分牵一发而动全身,其他所有部分都要考虑进去,把我绕的头晕目眩。
比如UI上有个数值变化了,那就好玩了,首先数据部分要变,接着通知其他部分 --- A、B、C都要变
再比如程序部件A改变了其中某个数据部分的某个数据,那么数据部分要变、UI要变,同时还要通知BC……,看似简单,实则繁琐
还有,其实这也应该可以使用监听模式。
再仔细想一想,发现数据部分里的数据UI都要呈现,UI数据和数据部分的极大部分数据都重复了,这才导致了繁琐的数据同步。之后我想到曾在某画图板程序中看到把UI当数据用的做法,就类似下面这样:UI中的get、set方法就充当了赋值、获取值的作用
// 拾取、设置颜色 pen_color_show_button.setBackgroundColor(e.getSource().getBackgroundColor())
在比如获取坐标
return Integer.parseInt( image_x_position_input_box.getText())
这下的关系图就像这样了:
用户相当于组件D了,由原来的对数据进行读写再同步UI的两步走变成了直接把当UI数据进行读写的一步走。在编写小程序的时候太有用了。
数据冗余量大减,要写的代码又变少了,又有更多的时间陪陪家人了
标签:
原文地址:http://www.cnblogs.com/night-ride-depart/p/5372321.html