当前位置: 首页 > news >正文

南京网站建设费用软广告经典例子

南京网站建设费用,软广告经典例子,谁有手机网站,wordpress博客反应慢Delphi的TRegistry注册表类 方法详解Delphi的接口编程入门delphi中接口的委托和聚合 2009-09-27 10:44:44| 分类: 默认分类 | 标签: |举报 |字号大中小 订阅 委托:当存在两个接口,和两个类;这两个类分别实现了两个…
 
Delphi的TRegistry注册表类 方法详解
 
Delphi的接口编程入门

delphi中接口的委托和聚合  

2009-09-27 10:44:44|  分类: 默认分类 |  标签: |举报 |字号 订阅

委托:
当存在两个接口,和两个类;这两个类分别实现了两个接口;
现在需要一个创建一个类支持这两个接口,为了不采用重复的工作
就可以在Create方法中,创建实现了这两个接口的类,然后委托这两个实现了接口的方法去实现功能
代码如下:
type
ISomeIntf = interface
['{E3285C36-B73B-4F36-8AA1-904F76FBC9E8}']
    procedure Msg;
end;

IOtherIntf = interface
['{271DC3C3-E29E-4D2A-A05D-C3DAC641D723}']
    function Check: Boolean;
end;

TSome ISomeIntf)
protected
    procedure Msg;
end;

TOther IOtherIntf)
protected
    function Check: Boolean;
end;

TIntf IUnknown, ISomeIntf, IOtherIntf)
private
    // declare objects to delegate to
    FSomeClass: ISomeIntf;
    FOtherClass: IOtherIntf;
protected
    // ISomeIntf
    procedure Msg;
    // IOtherIntf
    function Check: Boolean;
public
    constructor Create;
end;

{ TIntfClass }

constructor TIntfClass.Create;
begin
inherited;
// create objects for delegation
FSomeClass:= TSomeClass.Create;
FOtherClass:= TOtherClass.Create;
end;

function TIntfClass.Check: Boolean;
begin
// delegate work
Result:= FOtherClass.Check;
end;

procedure TIntfClass.Msg;
begin
// delegate work
FSomeClass.Msg;
end;

 


聚合
关键字implements使得一个类通过对象或者接口属性引用(已经实现了接口的类引用)来实现这个类所支持的接口,不用为起支持的接口编写代码。
示例代码如下:
type
ISomeIntf = interface
['{E3285C36-B73B-4F36-8AA1-904F76FBC9E8}']
    procedure Msg;
end;

IOtherIntf = interface
['{271DC3C3-E29E-4D2A-A05D-C3DAC641D723}']
    function Check: Boolean;
end;

TSome ISomeIntf)
protected
    procedure Msg;
end;

TOther IOtherIntf)
protected
    function Check: Boolean;
end;

TIntf IUnknown, ISomeIntf, IOtherIntf)
private
    FSomeClass: ISomeIntf;
    FOtherClass: TOtherClass;
protected
    // interface type reference property
    property SomeIntf: ISomeIntf read FSomeClass implements IUnknown, ISomeIntf;
    // object type reference property
    property OtherIntf: TOtherClass read FOtherClass implements IOtherIntf;
end;

但是必须在适当的时候对引用的类初始化;
constructor TIntfClass.Create;
begin
FSomeClass:= TSomeClass.Create;
FOtherClass:= TOtherClass.Create;
end;

聚合实际上是委托在代码上的一种简化;对于接口引用和对象引用,区别在于:接口引用比较安全,在它Relrease之前可以安全的引用,但对象引用可能被意外的
Free掉,所以在使用对象引用时,必须很好的控制对象引用的计数逻辑。一般通过接口控制类的生存周期。

转载于:https://www.cnblogs.com/MaxWoods/p/3843615.html

http://www.lbrq.cn/news/2521081.html

相关文章:

  • 新建网站如何公安备案山东最新消息今天
  • 长沙网站排名分析seo推广软件费用
  • 同ip网站做友链唯尚广告联盟
  • 外贸企业网站建设一条龙百度竞价推广有哪些优势
  • 有没有做网页接单的网站学it学费大概多少钱
  • 怎么做签到网站产品宣传推广策划
  • 深圳分销小程序开发平台百度seo在哪里
  • 云羽网络做网站怎么样免费二级域名分发平台
  • 惠州做网站的公司官网模板
  • 企业网站建设费用定金怎么做账适合30岁短期培训班
  • 用easyui做的网站南宁seo多少钱报价
  • 网站管理怎么做学营销app哪个更好
  • 手提包 东莞网站建设seo北京优化
  • 网页制作和网站制作有什么区别谷歌搜索引擎营销
  • 中文响应式网站模板网上在线看视频为什么卡
  • 义乌网站建设设互联网营销的优势
  • 饰品网站建设东莞seo搜索
  • 网站 无限下拉菜单公众号运营
  • 网站建设交接表镇江seo优化
  • 淘宝客聚惠购的网站怎么做广州网站优化步骤
  • html5网站制作教程百度网页翻译
  • 酒店 手机网站模板网上代写文章一般多少钱
  • 做网站需要招聘内容郑州seo关键词优化公司
  • 綦江建站哪家正规网站制作策划书
  • 做go分析的网站百度搜题
  • 大同网站建设开发营销策略
  • 邢台百度爱采购一键关键词优化
  • h5素材做多的网站新网站秒收录技术
  • 高端网站建设联系方式怎样策划一个营销型网站
  • 0基础做网站用什么语言线上推广员是做什么的
  • Linux 系统进程管理与计划任务详解
  • 会吸的簸箕专利拆解:迷你真空组件的吸力控制与吸入口设计原理
  • 亚马逊广告进阶指南:如何合理调配预算
  • 智能Agent场景实战指南 Day 26:Agent评估与性能优化
  • React 中获取当前路由信息
  • 【WRF-Chem 实例1】namelist.input 详解- 模拟CO2