我重构我的代码,所以我需要做出接口或抽象类的决定。 我有基类播放器和继承这是所谓的录像机,MusicPlayer等基础类课程。 基类有没有实现(播放)抽象方法。 那么,什么是最好的方式? 将播放接口或把它留在抽象类。 玩在MusicPlayer是不是同样喜欢球员的VideoPlayer。 我这样做,在C#。
class Player
{
abstract void Play();
}
class VideoPlayer : Player
{
void Play()
{
//Some code.
}
}
class MusicPlayer : Player
{
void Play()
{
//Some code.
}
}
一个常见的事情是做两件事
一个)提供的接口。 并使用接口时,你消耗的对象(即调用play方法)。
b)中提供一个实现为在有共同的管道的情况下的接口的基类; 常用的方法等,这是一个辅助实施者任意地使用
通过这种方式IAmAPlayer的实施者可以简单地实现该接口,或者它们的使用情况的基础类相匹配,他们可以使用。
如果你没有要继承任何基本功能,使用的接口。 当你有你想要的部分实现被继承抽象类使用。
通常,如果它只是意味着一个方法可以称为你使用的接口。 该接口部分旨在解决单继承问题。 如果您不打算在父常用的方法,使用的接口。
把事情简单化。 如果你可以用一个接口做到这一点。 如果你不能使用一个接口使用抽象类。
有一点要考虑,接口要求所有的属性和方法,其中抽象类没有得以实施。 小调点,但有时你需要支持组件的多个版本。
您需要了解接口继承和类继承的区别。
抽象类用于建模外观类似的类的类层次结构(例如动物可以是抽象类和人类,狮子,老虎可在混凝土派生类)
接口用于通信不关心类型的类实现接口的2相似/非相似的类之间(如高度可界面特性,它可以通过人体,建筑物,树木来实现。这不要紧,如果你可以吃,你可以游泳,你可以死或任何..它重要的只是你需要有高度的东西(在你类实现))
现在,你就会明白这里为您例如,您可能需要同时拥有。 如果您确定的播放方法的消耗以及许多其他类别的可能性,它很好的有接口的实现,让其他人将通过接口使用方法。