我只是在查看使用nHibernate的现有项目的源代码,发现为每个实体类创建了接口。例如,客户类的ICustomer 。我只是想知道这种模式的优势是什么,因为ICustomer主要包含属性和很少的方法。
问问题
135 次
2 回答
9
我会说不。接口将行为与实现分开,以便可以在不影响接口客户端的情况下交换后者。
如果您的域对象不需要不同的实现,我认为不需要接口。仅在需要动态代理生成或方面或更改实现时才引入它们。
于 2010-05-11T15:33:32.863 回答
1
我不同意前面的评论......虽然,结合控制反转(IoC)和依赖注入等模式,它使得将这些层相互隔离变得更加容易。这简化了单元测试、模拟,并且还可以导致更松散耦合的架构。这仍然可以在没有接口的情况下实现,尽管您需要确保不密封类并使成员虚拟化,以便您仍然可以模拟,生成可拦截的代理等......最后,使用接口迫使您放弃与任何相关的假设一个具体的实现,而是专注于接口定义所代表的契约。
于 2010-05-13T22:23:16.613 回答