代码重构——之获得封装性DELPHI编码实例
代码重构是获得结构良好的方法,通过重构,我们在保持功能不变的情况下,改善代码的质量,提高代码的复用程度。下面是一个获得改善代码质量和获得封装性的一个具体的例子。(例子使用DELPHI)
代码功能:
给数据集设(TClientDataSet)置过滤器,用户可以在一个TComboBox中选择要过滤的字段,然后在一个Tedit框中输入要过滤的值。如图一:
最常见的做法就是在TComboBox的Items属性中硬码写入我们数据集中的字段名称,然后在代码中加入一大堆case或者if语句在判断用户选择的字段来给数据集设置过滤器。
……
case ComboBox1.ItemIndex of
0:
ClientDataSet.Filtered := False;
ClientDataSet.Filter := ' F_CODE = ''' + Edit2.Text + '''';
ClientDataSet.Filtered := True;
1:
ClientDataSet.Filtered := False;
ClientDataSet.Filter := ' F_CHINESE_NAME = ''' + Edit2.Text + '''';
ClientDataSet.Filtered := True;
……
end;
或者用
….…
if ComboBox1.Text = '物料编码' then
begin
ClientDataSet.Filtered := False;
ClientDataSet.Filter := ' F_CODE = ''' + Edit2.Text + '''';
ClientDataSet.Filtered := True;
end
else if ComboBox1.Text = '名称' then