我应该使用定义List功能的接口或抽象基类

时间:2016-06-05 14:16:10

标签: c# oop dependency-injection

我有一个基本的列表功能:

Add(object)  
GetAll()  
Count()  

在我当前的作业中,我需要将此列表对象注入另一个将使用它的对象中。

我此时也只想实现它的内存版本,但是希望有一天可以实现它的实现数据库实现。

是否会使用接口来定义上述函数或抽象基类?

2 个答案:

答案 0 :(得分:4)

抽象基类是在多个具体类之间共享接口实现的一种方法。

但是,由于客户端永远不应关心实现细节,因此依赖注入应始终通过接口进行。否则,客户端会在依赖项上强制执行选择,这正是DOI要阻止的耦合类型。

答案 1 :(得分:0)

如果您需要在将来为所有派生类提供一些默认功能,那么抽象类将是很好的其他接口,如果您计划修改基类,那么这些抽象类也有助于修改基类,因为您可以定义基类中的功能和自动所有继承类将具有相同的功能而不会干扰结构。希望它有所帮助!