C#中为什么需要UI、业务和数据访问之间的接口我在很多地方都看到了,当c#程序员使用3在轮胎架构中,他们倾向于在每一层之间使用接口。例如,如果解决方案是这样的SampleUISample.Business.InterfaceSample.BusinessSample.DataAccess.InterfaceSample.DataAccess这里UI通过接口调用业务层,业务以同样的方式调用数据访问。如果这种方法是为了减少层之间的依赖性,那么它已经可以与类库一起工作,而无需额外使用接口。代码示例如下,Sample.BusinesspublicclassSampleBusiness{ISampleDataAccessdataAccess=Factory.GetInstance();数据访问.GetSampledata();}Sample.DataAccess.Interface公共接口IsampleDataAccess{字符串GetSampleData();}Sample.DataAccesspublicclassSampleDataAccess:ISampleDataAccess{publicstringGetSampleData(){returnsdata;//datafromdatabase}}在它们之间进行外推有什么好处?如果我使用newSampleDataAccess()。SampleData()并移除完整的接口类库?代码契约使用接口作为设计过程的一部分有一个显着的优势:它是一个契约。接口是契约的规范,从这个意义上说:这样做的好处是它简化了开发团队之间的工作分工。它允许一层的开发人员提供一个咳嗽接口咳嗽,下一层可以用来与之通信......甚至在实现这样的接口之前。一旦他们同意接口。至少在尽可能小的界面上。他们可以开始并行开发层,因为他们知道其他团队会遵守他们的合同部分。纪律以这种方式使用接口的一个副作用是它允许模拟组件实现。这简化了单元测试的创建。这样,您就可以单独测试该层的实现。因此,您可以轻松区分某层何时因缺陷而失效,以及某层因下层缺陷而失效。对于一个人开发的项目,或者一个不费吹灰之力就可以划分工作的团队,模拟能力可能是他们实现界面的主要动机。例如,考虑一下您是否想测试您的表示层是否可以正确处理分页……但您需要请求数据来填充这些页面。无论哪种方式,解决方案都可能是模拟的。此外,如果您有模拟界面,模拟会更容易。更改实现如果某些开发人员出于某种原因决定他们想要更改其层的实现,他们可以信任接口强加的契约来这样做。这样,他们可以在不更改其他层代码的情况下交换实现。什么原因?当然,无论哪种情况,您都希望能够以尽可能少的工作实现这些更改。因此,您不想更改上面的层以针对不同的实现。相反,您可能拥有某种形式的工厂或控制反转容器,您可以将其配置为使用所需的依赖注入实现。ReduceChangePropagation当然,他们可能会决定更改实际的界面。如果在一个层上工作的开发人员需要向界面添加一些额外的东西,他们可以将其添加到界面(根据团队为批准这些更改而设置的任何方法),而不会弄乱其他团队正在处理的类代码。在源版本控制中,这将减少边际更改。最后,使用分层架构的目的是分离关注点。这意味着分离更改的原因......如果您需要更改数据库,您的更改不应传播到专门用于向用户显示信息的代码中。当然,团队可以通过特定课程来实现这一点。然而,接口提供了良好且明显的、定义明确的语言支持,防止更改传播。特别是如果团队有关于责任的良好规则(不,我不是说代码问题,我是说,开发人员负责什么)。你应该总是使用层的抽象来拥有这个能力以上是C#学习教程:WhyWeNeedInterfacesBetweenUI,BusinessandDataAccessinC#全部内容分享,如果对大家有用还需要了解更多C#学习教程,希望大家多多关注-本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
