• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Atitit. 委托的本质 c#.net java php的比较

php 搞代码 4年前 (2022-01-23) 22次浏览 已收录 0个评论

Atitit.class 与type的区别,抽象的级别 class, delegate,interface委托的本质

1. 委托是粒度更细的接口 1

2. 委托模式 1

3. Java中的委托 1

4. class 与type的区别 2

1. 委托是粒度更细的接口

接口(interface)是面向类(class)的,而委托(delegate)是面向方法(method)和属性(property)。接口必须应用在类上面,而委托却是应用在方法和属性上。

当方法的参数是委托类型时,因为匿名委托的存在,使得调用更简便??这个时候方法就是属性,直接赋值给参数即可。

委托使得“外界约束?外界契约”的影响力缩小到一个方法上,而不是像接口那样影响整个类。

委托是允许继承的,即意味着委托有多态的功能,比如在把委托用于策略模式。

MSDN中,将class, delegate,interface并列为.net中的三大类型(type),只是delegate比interface粒度更细。微软在相关文档中指出,能用delegate完成的,都能用interface代替。

Java中的说法是函数式接口 (jdk8 才支持委托)

作者:: 老哇的爪子 Attilax 艾龙, EMAIL:[email protected]

2. 委托模式

是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。委托模式是一项基 本技巧,许多其他的模式,如状态模式、策略模式、访问者模式 本质上@本文来源gaodai$ma#com搞$代*码6网搞代gaodaima码是在更特殊的场合采用了委托模式。委托模式使得我们可以用聚合来替代继承,它还使我们可以模拟mixin。

3. Java中的委托

“委托”在C#中是一个语言级特性,而在Java语言中没有直接的对应,但是我们可以通过动态代理来实现委托!代码如下:.

delegate只是一种说法,在java中与之同等的说法是call back

Jdk8 已经有了委托的实现。。函数式接口"就是C# 的委托(delegate)

4. class 与type的区别

你可以把Class理解为Type的子集

Type为一个特殊的类,用来描述类型本身的特性,如名称,命名空间,程序集,所拥有的属性.方法.特性等等,获取某个类实例的所属的Type:aObject.GetType(),获取某个类型的所属的Type:typeof关键词.


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Atitit. 委托的本质 c#.net java php的比较

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址