我可以看到他们在协调开发团队或其他人可能进一步开发的代码方面的优势。
但如果没有,是否有理由使用它们?如果省略它们会发生什么?
摘要 - 我将能够实例化它。没问题。如果它没有意义 - 我不会。
接口 - 无论如何,我在从它派生的所有类中声明了该功能。
注意:我不问他们是什么。我问他们除了协调之外是否对它有帮助。
答案 0 :(得分:2)
这两个都是我称之为合同的,可以由个别开发人员以下列方式使用:
摘要
接口
contract of operation(s)
。
这种用法可以针对手头的过程并允许
该合同的手术精确操作。 长话短说他们需要完成工作吗?没有。
但是如果你要设计的系统寿命超过一个周期,那么建筑师的前期工作无论是在团队还是个人身上都会得到回报。
++更新
我确实实践了我所宣传的内容,在将项目交给其他开发人员时,很高兴说
IProcess
。该流程定义了一个目标系统,可以帮助您以定义的方式理解业务逻辑的目的和执行。答案 1 :(得分:1)
摘要 - 您可以实例化它的子项,但更重要的是,它可以有自己的非抽象方法和字段。
接口 - 关于抽象的更“粗略”,但在.NET
中,您可以拥有多重继承。因此,通过定义接口,您可以引导接口的使用者订阅不同的合同(接口),从而呈现指定类型的不同“形状”。
答案 2 :(得分:1)
我认为如果你没有与他人协调,它会做两件事
答案 3 :(得分:0)
即使您没有与任何人协调,也有很多理由使用这两种构造。主要用途是实际上帮助表达开发者意图,这可能会帮助您稍后找出您选择实际选择的设计的原因。它们还可以允许进一步扩展性。
Abstract类允许您定义一个在多个派生类之间共享的公共实现,同时将一些行为委托给子类。它允许DRY(不要重复自己)原则,以避免在任何地方重复相同的代码。
接口表示您的类实现了一个特定的合同。这在框架内有非常有用的用途,其中包括:
使用需要实现某些接口的库功能。例如IDisposable,IEquatable,IEnumerable ......
在泛型中使用约束。
允许模拟接口(如果进行单元测试),而不必实例化真实对象。
使用COM对象