我有包含以下 dll 的应用程序:
Web 项目 - MVC Web 应用程序
Wcf 服务 - Web 应用程序使用的服务。
模型 - Entity Framework 代码优先实体和 DbContext 对象。
现在,当我需要更改某些内容时,可以说是 wcf 服务中的功能,所以我更改了功能,但 web 也受到了影响,我需要再次添加服务引用并有时更改使用 wcf 服务和模型的代码变化...
正如中共所说:包装不应该有一个以上的理由来改变。如果在依赖于多个包的应用程序中发生更改,理想情况下我们只希望更改发生在一个包中,而不是在多个包中发生。 这有助于我们确定可能会更改的类,并出于相同的原因将它们打包在一起。如果这些类紧密耦合,请将它们放在同一个包中。
所以在我的设计中我违反了这个原则?如果有人能解释更好的设计,我会很高兴。
最佳答案
WCF 服务包含 WSDL 定义,它是使用其功能的契约,也为它定义了实体。您需要再次添加引用的一个可能原因是您正在更改此契约(Contract)。 欲了解更多信息,请查看此处: http://msdn.microsoft.com/en-us/library/aa738723(v=vs.110).aspx
关于c# - 我是否违反了共同封闭原则(CCP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25377998/