您的位置:首页 > 其它

When to Use Delegates Instead of Interfaces

2013-02-01 17:10 337 查看
Both delegates and interfaces enable a class designer to separate type declarations and implementation. A given interface can
be inherited and implemented by any class or struct. A delegate can be created for a method on any class, as long as the method fits the method signature for the delegate. An interface
reference or a delegate can be used by an object that has no knowledge of the class that implements the interface or delegate method. Given these similarities, when should a class designer use a delegate and when should
it use an interface?
Use a delegate in the following circumstances:

An eventing design pattern is used.

It is desirable to encapsulate a static method.

The caller has no need to access other properties, methods, or interfaces on the object implementing the method.

Easy composition is desired.

A class may need more than one implementation of the method.

Use an interface in the following circumstances:

There is a group of related methods that may be called.

A class only needs one implementation of the method.

The class using the interface will want to cast that interface to other interface or class types.

The method being implemented is linked to the type or identity of the class: for example, comparison methods.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: