PaN*_*1Me 7 generics abstract-class interface
假设我们在.NET中创建一个通用控件.比如一棵树.我不明白为什么人们使用这种泛型类型定义
Control<T>
Run Code Online (Sandbox Code Playgroud)
在面向对象编程时我可以使用抽象类或接口:
Control<IItem> or Control<BaseClass>
Run Code Online (Sandbox Code Playgroud)
所以唯一要做的就是,它们的类型必须从该基类派生或实现接口.这是否意味着,泛型类型更方便,因为您不必实现或继承任何东西?
Art*_*ger 18
我觉得你有点困惑.通用类型和抽象类/接口为应用程序设计中的不同方法提供不同的目标.抽象类/接口用于概括一组实体的通用功能.稍后,这个API可以以不同的方式实现,但由于涉及多态性,它不会影响任何人.
另一方面,有时你有一个非常类似的东西实现,唯一的区别是你正在使用的对象的类型.在这里你需要一个通用的.你可以使用多态,但没有必要.为此,只需定义一个接口,进行实现,让最终用户决定使用哪种对象就更清楚了.
最好的例子是List,其中list的主要用途是存储元素.List实现者不应该关心您将使用哪种类型的对象,因此稍后您将只能定义List并使用整数列表.
| 归档时间: |
|
| 查看次数: |
6220 次 |
| 最近记录: |