什么时候不使用接口或抽象类?

时间:2011-04-06 12:02:00

标签: oop

我正在创建一个课程,它将退税,并为您提供税前价值。这只是一个简单的具体类,没有涉及接口或抽象类,但我一直在想,也许我应该实现和接口或抽象类并从中继承,因为如果有一天有人说,“我没有实施退税方式“,我是另一种方式,所以我必须为那个人创建另一个类或方法。所以我的问题是,你怎么知道什么时候应该创建和抽象类或接口。如果在设计时,你真的不知道该怎么办?你应该在以后做这件事来掩盖自己吗?

3 个答案:

答案 0 :(得分:1)

取决于你的哲学。极限编程人群(XP)说“YAGNI”(你不需要它)并建议不要实现任何东西,除非你真的要使用它。但是,由于您已经预见到人们会以不同的方式计算税收,因此您需要考虑到这一点,并使您的ComputeTax方法变为虚拟。

答案 1 :(得分:0)

界面几乎总是好主意。你知道你的类会做什么,所以为什么不把公共部分放在一个接口中,这样任何人(特别是你以后)都可以从使用这个类编写的代码中受益并将它与接口一起使用?

答案 2 :(得分:0)

这里的问题是您提出问题的方式,即您使用的示例。是否需要接口取决于 context ,使用对象的类,而不是对象本身的类型。

因此,如果您提出......“我正在编写一些代码,需要退税以提供税前价值。这些代码是否应该关注税收如何退出?”如果不是,那么您正在编写的代码应该使用接口,否则不应该使用。如果需要调用“backoutTaxes”方法的代码不关心如何撤销这些税,那么应该有一个BackoutTaxClass实现的接口。