1、利用面向对象的原则,将我们面对的功能拆分出相关对象
2、相同功能只应出现在一个类中。
3、相似功能尽量提取其公共部分
总的目标简单来说就是:精减代码量。
我们以一个动态条件查询界面来说明一下上面几点
这是一个病案查询功能,左则的列表是所有可供选择的字段,中间是用户要求查询的字段,右侧的某一个查询字段的条件。
组织这个界面功能要用到哪几个类呢?
结果不是唯一的,每个人都可以有自己的想法。但我认为,组织一个更多人容易理解的方式应该是我们的目标。
首先浮现我们脑子的,应该是两个对象:所有的字段、字段查询范围
研究一下所有字段的规则,更多时候应该跟客户面对面的聊。我们发现部分字段使用相同的查询范围录入界面。
所以这里似乎隐藏了一个字段类型。就是某一类的字段的行为是一致的,界面录入、条件生成等行为是一致的。
字段查询范围、字段类型都很容易让人想到这两个是字段的属性,而不是构造主要元素的功能对象。
是的,从名字来看就很容易让人迷惑。但如果我将名字换成“查询范围”、“行为控制器”,你可能会明白我的用意。
三个对象:字段、查询范围、行为控制器
左侧显示就是所有“字段”,中午显示的是所有的“查询范围”,行为控制器必然是一个接口,让主程序可以优雅的处理所有类型的字段。
上图是中间查询范围选中事件的代码,这个主程序就能应对N种字段的显示。
本文只发布在博客园,未经同意请勿转载!
版权声明:除特别声明外,本站所有文章皆是本站原创,转载请以超链接形式注明出处!