当前位置:  开发笔记 > 编程语言 > 正文

什么是用于的空接口

如何解决《什么是用于的空接口》经验,为你挑选了4个好方法。

我正在看nServiceBus并通过这个界面

namespace NServiceBus
{
    public interface IMessage
    {
    }
}

空接口有什么用?



1> Mendelt..:

通常它是用来表示一个类的用法.您可以实现IMessage来表示您的类是消息.然后,其他代码可以使用反射来查看您的对象是否要用作消息并相应地执行操作.

这是Java在注释之前经常使用的东西.在.Net中,使用属性更清晰.


@ Stimpy77谢谢!我没想过那样.我希望你允许我以更一般的方式改写你的评论.

必须在运行时使用反射检查注释和属性.可以使用编译器中的类型系统在编译时检查空接口.这根本不会在运行时产生任何开销,因此速度更快.


要注意.NET注释,它需要反射才能使用属性,这种属性较慢并且不支持"X是Y"和"X as Y"语义.您也可以在.NET中使用空接口.

2> mattcole..:

也称为标记界面:

http://en.wikipedia.org/wiki/Marker_interface_pattern



3> André..:

在java中Serializable就是一个完美的例子.它没有定义任何方法,但每个"实现"它的类必须确保它是可序列化的,并且不能引用无法序列化的东西,如数据库连接,打开文件等.



4> Jon Skeet..:

在Java中,空接口通常用于"标记"类 - 这些天通常会使用注释.

这只是向类中添加一些元数据的一种方式,即即使不涉及普通成员,"此类也适合使用".

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有