如何对待类的方法和属性 (100分)

  • 主题发起人 主题发起人 wvy
  • 开始时间 开始时间
W

wvy

Unregistered / Unconfirmed
GUEST, unregistred user!
关于类的函数和属性的争论
有类 TEmployee = Class
private
FId : Integer;
FName : String;
FBM : String;
public
....

end;
现在 使用中 有查找 一项 要求:
用户输入了 编码, 类的实例的属性返回查找的结果
有两种思想:
1. var zEmployee : TEmployee;
....
zEmployee := TEmployee.Create();
zEmployee.BM := sInputBM;
if zEmployee.bFind then
begin
...
end
else begin
...
end;
2. var zEmployee : TEmployee;
...
zEmployee := TEmployee.Create();
if zEmployee.Find(sInputBM) then
begin
...
end
else begin
....
end;
两种方法 矛盾集中在 是 提供 Find 方法
还是 在
property BM :String Read FBM Write FFindByBM()
希望大家讨论。
 
实际使用上都是有差别的。第一种以前在VB的控件里就见过,
这种可以搜索多个匹配条件的记录,而第二种却只能搜一个,
如果要得到多个,第二种则需要返回一个集合,显然编程麻烦得多。
 
如果你喜欢DELPHI,就用
property BM :String Read FBM Write FFindByBM()
 
你的情况是应用建一个 TEmployeelist 的集合类
把find放在 TEmployeelist 。返回一个TEmployee
把find方法放在 TEmployee 不符合面向对象的思想
设BM 时就finD也不是很好,万一find到多个对象怎么处理?

 
如果是常用的且变化不多,就用属性,否则就用方法!
 
多谢各位!
 

Similar threads

后退
顶部