社区
数据库相关
帖子详情
接口(interface)在數據庫應用程序開發中的實際應用???
konhon
2004-03-27 10:02:36
請大家講講接口(interface)技術在數據庫應用程序開發中除了能保證
對"數據操作方法"的统一外,還有什麼其它好處?
有代碼參考更好!!
...全文
111
8
打赏
收藏
接口(interface)在數據庫應用程序開發中的實際應用???
請大家講講接口(interface)技術在數據庫應用程序開發中除了能保證 對"數據操作方法"的统一外,還有什麼其它好處? 有代碼參考更好!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
konhon
2004-04-06
打赏
举报
回复
升星啦,高興接貼
konhon
2004-04-01
打赏
举报
回复
没时间上网,贴子就沉啦。各位要帮我up呀。
konhon
2004-03-27
打赏
举报
回复
请大家讲一些实际的应用?理论的东西书上有很多呀。
konhon
2004-03-27
打赏
举报
回复
请大家讲一些实际的应用?理论的东西书呆子有很多呀。
aiirii
2004-03-27
打赏
举报
回复
Interfaces接口
接口定义了包含一组抽象方法的类型。一个类,即使是自一个简单的基类继承而来也可以实现任意多的借口。接口与抽象类有些相似(即没有任何字段并且所有方法都是抽象方法的类),并且Delphi提供了附加的功能。Delphi的接口有时很象COM(组件对象模型)借口,但是使用Delphi的接口并不需要你了解有关COM的内容,同时你还可以将接口用作其他许多用途。
你可以声明一个新的接口——它继承于一个已经存在的接口。接口的声明包含了方法和属性的声明,但是没有字段。正如所有的类都继承于TObject一样,所有的接口类继承自IUnknown。接口IUnknown定义了三个方法:_AddRef,_Release,以及QueryInterface。如果你对COM熟悉的话,对此三个方法便不会陌生。前两个方法用于管理实现此接口的对象的生命周期引用计数。第三个方法用于存取对象可能实现的其他接口。
当你想要声明一个实现了一个或者多个接口的类时,你必须实现接口中所声明的所有方法。新的类可以直接实现接口的方法,也可以将此实现委托给一个属性——其值为一个接口。实现_AddRef,_Release以及QueryInterface方法最简单的方法就是继承TInterfacedObject及其派生类的方法,当然你也可以继承自其他类如果你想自己定以方法的实现的话。
新类在实现接口的方法时必须使用于接口方法一致的方法名,参数以及调用约定。Delphi自动将类的方法与接口的相应方法配对。假如要使用不同的方法名,你可以使用不同的方法名来重定向接口的方法。用作重定向的方法必须具有于接口的方法一致的参数和调用约定。这一特性非常重要,当一个类需要实现多个接口,而其中有重复的方法名时尤其如此。请在第五章查找关键字Class,以获得有关重定向方法的更多内容。
类可以使用implements指示符将接口的实现委托给一个属性。该属性的值必须得是该类将要实现的接口类型。当对象被映射到该接口上时,Delphi自动获取该属性的值,并且返回该接口。参考第五章中关于implements指示符的内容。
对于每个非委托方式实现的接口,编译器为其创建一个隐含的字段用于存放指向该接口的VMT。接口的字段正好位于对象隐含的VMT字段之后。正如对象引用其实是指向对象的隐含的VMT字段的指针,接口的引用也是指向隐含的VMT字段的一个指针。当对象被创建时Delphi自动初始化隐含字段。参考第三章有关编译器如何使用RTTI来追踪VMT和隐含字段的内容。
Reference counting引用计数
编译器触发对_AddRef和_Release的调用以管理接口对象的生命周期。要使用Delphid的自动的引用计数,声明一个接口类型的变量即可。当你将一个接口引用赋值给一个接口变量时,Delphi自动调用_AddRef。当改变量离开作用域时,Delphi自动调用_Release。
_ AddRef和_Release的行为完全取决于你。如果你从TInterfacedObject继承,则这些方法完成引用计数的功能。_AddRef方法用于增加引用计数,_Release用于将引用计数减一。当引用计数为0时,_Release方法将释放对象。如果你从其他类继承而来,则你可以定义自己的方法。但是,你应当正确的实现QueryInterface方法,因为Delphi正是基于此来实现As操作。
Typecasting类型转换
Delphi调用QueryInterface来对接口实现部分as操作的功能。你可以使用as操作符将一个接口转换为另外一个接口。Delphi调用QueryInterface以获得一个新的接口引用。如果QueryInterface返回一个错误,则as操作将触发一个运行期错误。(在SysUtils单元中该运行其错误被映射到EIntfCastError异常类中。)
你可以用自己的方式来实现QueryInterface方法,虽然可能你更倾向于与TInterfacedObject的实现接近的那种。例子 2-13 显示的是一个类实现了普通的QueryInterface方法,但是对于_AddRef和_Release方法的实现确大不相同。稍后你将看到这样做有什么用处。
lywho
2004-03-27
打赏
举报
回复
up
aiirii
2004-03-27
打赏
举报
回复
>>接口(interface)技術在數據庫應用程序開發中除了能保證
可以結合些模式 實現方便的多態操作
ADWARDS00
2004-03-27
打赏
举报
回复
可以封装企业对象,做中间件的时候很有用
3天掌握Windows GDI+图形编程
GDI+(Graphics Device
Interface
plus)是以前版本GDI的继承者,出于兼容性考虑,Windows XP仍然支持以前版本的GDI,但是在开发新应用
程序
的时候,开发人员为了满足图形输出需要应该使用GDI+,因为GDI+对以前的...
API(Application Programming
Interface
,应用
程序
编程
接口
)详解
API(Application Programming
Interface
,应用
程序
编程
接口
)是一些预先定义的函数,目的是提供应用
程序
与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。API除了有...
应用
程序
接口
有什么作用
在数据封装时,网络分层
中
的每个层相互之间会用
接口
进行交互并提供服务,其
中
应用层与用户之间的
接口
称之为应用
程序
接口
。API实际上是一种功能集合,也可说是定义、协议的集合,无论是那种集合,它的实质都是通过...
应用
程序
直接获取数据库连接的缺点
一、应用
程序
直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的...
c语言开发窗口应用
程序
1.学会制作带窗口界面的
程序
。...2.学会软件开发
中
常用的各种技术,如网络编程,多线程编程,数据库编程。 3.项目实战,让您知道软件是怎么一步一步制作的。可以学会c语言的模块化编程以及一些编程习惯和思路。
数据库相关
2,498
社区成员
88,445
社区内容
发帖
与我相关
我的任务
数据库相关
Delphi 数据库相关
复制链接
扫一扫
分享
社区描述
Delphi 数据库相关
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章