关于类的用法,最近对delphi比较上瘾(200分)

  • 主题发起人 主题发起人 zhaolibo
  • 开始时间 开始时间
Z

zhaolibo

Unregistered / Unconfirmed
GUEST, unregistred user!
type
TDataService = class(TDataModule,IMyControl)
其中TdataModule是数据模板类,IMYControl是个接口类
请问括号里边有两个类的是什么意思?为什么要这样做?都有什么用法?哪位老大能告诉我?
 
DELPHI是单继承,第一个才是类,第二个是接口
接口只有方法定义,可以找本书看看
 
接口是一个抽象概念,依附与具体类的实现.
接口只是一种规范.
比如飞镖是飞行器,飞机也是飞行器.
但两者完全是不同类.但只要都符合飞行器的接口定义,实现了飞行的方法.就是飞行器类.
接口可以看成Class之外的一种归类方式.

IMyControl就是接口.
TDataService是实现了IMyControl接口的TDataModule派生类.
相当于:
飞行器是接口.
飞机和飞镖是实现了飞行器接口的不同类的派生类
 
TDataService 是 TDataModule 的派生类,他需要实现 IMyControl接口中定义的方法.
Delphi中的接口当初设计为给DELPHI自己用的,功能有限得很,且接口在作多次转换时容易出错.[:D]
要想学习接口,可以看看DELPHI COM编程技术这本书,
基于D5和D6写的一本书,盒子上好像有电子版,翻译过来的,
书本可能买不到了,这大概是唯一一本用DELPHI讲这类知识的书?
 
《delphi 模式编程》这本书就不错啊,结合实例,结合模式,对 OO 讲得比较透。
 
可以参才<<Object Pascal 中文参考手册>> Object interfaces(对象接口)章节
 
delphi里面没有 从多个类继承的功能 (太复杂,c++ 支持,java 也不支持)
但是有替代方法,就是接口
凡是
type
TDataService = class(TDataModule,IMyControl,Ixxx,Ixxx)
这种形式的里面只有一个类,其他都是接口,模拟了从多个类继承功能的作用
delphi里面建议用I 表示接口,T表示类并放前面,

这种形式的另外的作用,最常见就是所谓MVC 结构,看你这个变量就知道了 IMyControl 就是
mvc 里面的 c ---control ,m -- 就是你的数据操作类(modal) 可以封装 db 层和 bll(business 商业逻辑层) v 就是视图 也就是 dfm 以及其单元pas (里面调用 control(一般是单个pas) 访问modal(pas,或加data form 的dfm)拉
 
后退
顶部