dephi适合面向对象的开发吗?我有点怀疑!(0分)

  • 主题发起人 budianermayi
  • 开始时间
B

budianermayi

Unregistered / Unconfirmed
GUEST, unregistred user!
dephi适合面向对象的开发吗?
我有个疑问:请问怎么实现两个对象之间的相互关联?也就是说,定义两个类。
每个类将另一个类作为自己的成员变量:
type A = class;
b :TB
end;
type B = class;
a :TA
end;
怎么实现???必须在一个单元文件中实现??这样是不是太受约束??
是我这样设计不符合面向对象的方法(不提倡相互关联)??还是Delphi的面向对象
的局限性??????

 
我们公司的erp 平台 就全部都是对象。
 
这样是不是你的要求?
type
TA=Class;
TB=Class;
TA=Claas
private
FB: TB;
public
property B: TB: Read FB Write FB;
end;

TB = Class
private
FA: TA;
public
property A: TA Read FA write FA;
end;
 
来自:人在昆明, 时间:2002-11-22 15:17:00, ID:1451568
我们公司的erp 平台 就全部都是
你能为能,贴一段代码出来看看。
 
一群菜鸟[:(!]
 
都是高手啊[:D][:D]
 
我公司的也是,不见的OO就一定要去封装API,还可以去封装组件。
大系统,这样做,有利于整体架构清析
 
张嘴oo,闭嘴oo,我吃的面包也是oo的。
杂交水稻的生命力比任何纯种的都强,唉,学了这么多年o_o,o^o
 
我刚张一次嘴,怎么就被扣帽子??:)
to xiaoywh :那能不能在不同的单元文件中实现呢?我不想在同一个单元申明这两个类。
 
delphi 非正统 oo
 
C#,JAVA正统O O,O O!
 
百分之百的不同意delp的说法!
要说正统的OOP也轮不到C#、和Java,要属是Smalltalk。说的都是程序设计语言是不是面向对象的,
和OO设计方法是两回事。纯粹的OO设计语言比较难用,效率低,性能也未见得有多高。所以现在
提倡的都是OO的设计方法,好像没有谁用Smalltalk写软件。
再说Delphi,准确地说应该是Object Pascal,Turbo Pascal从5.5开始支持OOP,到7.0时已经支持
完整的OOP了,Object Pascal是7.0的后继版本,对OOP的支持更完善,并且抛弃了OOP中的不利的
东西,最典型的就是不支持多继承。
应该说在OO和程序员之间Delphi取得了一个较完美的中点。既提供了完整的OO实现手段又兼顾了程序员
的编程习惯,始终保持程序的可读性和可维护性。比比看,是C++的程序好读还是Pascal程序好读。
 
完全可以分别在两个单元文件中实现,你会不会用Object Pascal????
单元引用就行了.

再说面向对象的三大要素:继承/多态/封装.
就没见说要在几个单元里实现来评估是否符合面向对象的标准的.
 
单元1
unit1
type
Ta
end;
.....
单元2
unit2
uses
unit1;
type
tb
private
fa:ta

end;
 

哈哈,笑死我了!本以为我已经够菜的了,想不到有人比我更菜![:D][:D][:D]
 
好像不能再两个单元中相互引用并且都作为其类变量。
比如:
unit1
Type
Ta=Class
End;

Unit2
Uses Unit2
Type
Tb=Class
fa:Ta
End;

上面是正确的,但下面就不行:
unit1
Uses Unit2;
Type
Ta=Class
fb:Tb;
End;

Unit2
Uses Unit1
Type
Tb=Class
fa:Ta
End;
不能在接口中相互引用,但我不知道以下这样行不行,没试过,楼主可以试试:
unit1
Type
Tb=Class;
Ta=Class
fb:Tb;
End;
implementation
Uses Unit2;
...

Unit2
Uses Unit1
Tb=Class
fa:Ta
End;

 
看看控件的写法吧
 
有没有搞错,有人问这种问题?[:D]
 
请看VCL源码,此种例子比比皆是。最典型的就是数据感知控件了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
949
SUNSTONE的Delphi笔记
S
顶部