4 c# oop interface solid-principles
我喜欢"编程到接口"的概念,并避免使用"new"关键字.
但是,当我有两个具有相同界面但基本上与设置不同的类时,我该怎么办.在没有详细介绍我的特定代码的情况下,我有一个方法接口,"DoStuff".两个类实现此接口.一个非常简单,无需初始化即可.另一个有五个不同的变量需要设置.结合起来,当调用DoStuff时,它们允许数百万种类的方式工作.
那么我什么时候"新"这些课程呢?我虽然关于使用工厂,但由于设置的巨大差异,我不认为它们适用于这种情况.(顺便说一句:实际上有大约十个不同的类使用接口,每个类允许形成复杂管道的一部分,每个类具有不同的配置要求).
我想你可能会误解编程到接口的概念.您始终必须使用new面向对象语言中的关键字来创建对象的新实例.仅仅因为您对接口进行编程并不会删除该要求.
对接口进行编程只是意味着所有具体类的行为都在接口中定义,而不是在具体类本身中定义.因此,在定义变量的类型时,将其定义为接口而不是具体类型.
在您的情况下,只需DoStuff在您的具体类中实现,因为每个类都需要它实现(无论是简单地还是使用其他10个初始化对象和设置).例如,如果您有一个实现的接口IInterface和类.您可以声明一个这样的实例:SomeClassIInterfaceSomeClass
IInterface myInstance = new SomeClass();
Run Code Online (Sandbox Code Playgroud)
这允许您将此实例传递给其他函数,而不必让这些函数担心该实例类的实现细节.
| 归档时间: |
|
| 查看次数: |
1178 次 |
| 最近记录: |