一段时间以来,我一直对如何组织解决方案的最佳方法感到困惑。后来,我在这方面学到了很多知识,现在我创建了多个项目,以根据其用途将项目分开。
项目
现在,如果API项目包含我项目的所有接口,这是否意味着每个类都必须具有一个接口,或者这是最佳实践?似乎几乎不可能将所有接口放入AppName.API
而不用任何方式交叉包含AppName
和AppName.API
或AppName
以外的其他项目,这是要这样做吗?这样,除了接口之外,什么都不会暴露给API?
让我们说我有一个类Car
,Car
必须实现ICar
,如果这个ICar
需要访问Car
需要的另一个类怎么办?要添加但其AppName
中的内容,AppName
已经引用AppName.API
来包含ICar
,这是否意味着我需要类Car
或更正确的接口{ {1}}需要吗?
希望我的上述说法是有道理的。
我不确定这是否应该做,但是我感觉错了,或者我只是错过了一个很大的难题。这是正确的方法吗?我是唯一这样做的人吗?我莫名其妙地感到孤独。
如果有人能详细说明这一点并给我一些知识,我将不胜感激。
答案 0 :(得分:0)
这主要是一个根据用户的意见吸引答案的问题。在我的项目中,我通常将名称保存为“ AppName.ServiceName.Abstracts”。
答案 1 :(得分:0)
将接口分开是一个好习惯,但是您需要意识到接口是一种契约。消费者与执行方之间的合同。因此,接口上定义的任何传入或传出参数都是该合同的一部分。因此,将这些参数对象和相关接口捆绑在一个程序集中是有意义的。如果将它们放在单独的程序集中,则最终需要同时引用两者。
需要牢记的另一点是,接口为软件设计人员提供了逆转依赖关系(并提高可测试性)的能力,因为使用任何工具时都应谨慎使用它,而不必假定您必须连接创建的每个类。
最后,在分层软件设计中,将实体从一层映射到另一层并不少见。这是因为将层之间的依赖性降到最低。