2010-05-11 55 views

回答

9

我会说不。接口将行为与实现分开,以便后者可以在不影响接口的客户端的情况下被换出。

如果您的域对象不需要不同的实现,我不会看到接口的需要。只有在需要动态代理生成或方面或更改实现时才引入它们。

+1

+1因为它太容易在各处使用接口。话虽如此,如果您需要在任何地方使用“极少数方法”,或者如果Customer对象的构造函数执行任何业务规则,请准备好提取接口。你不想创建一个有效的具体的客户实例,只是为了单元测试其他类。 – 2010-05-11 15:35:49

+3

接口对版本控制问题也是臭名昭着的。如果你没有特别需要定义一个接口,不要。 – Will 2010-05-11 15:57:28

1

我不同意前面的评论......虽然与控制反转(IoC)和依赖注入等模式相结合,但它使得彼此之间的隔离更容易。这简化了单元测试,模拟,并且还可以导致更松散耦合的体系结构。这仍然可以在没有接口的情况下实现,尽管你需要确保你没有封闭你的类并使得成员是虚拟的,这样你仍然可以模拟,生成可以接受的代理等等。最后,使用接口迫使你放弃与任何有关的假设一个具体的实现,而是侧重于接口定义所代表的契约。

相关问题