Architecture 清洁建筑-示例;“三要素原则”;
我正在阅读“组成原理”部分 在这里,作者解释了组件设计的三个原则。我想我有点孤立地理解他们 重用/发布等效原则(REP)Architecture 清洁建筑-示例;“三要素原则”;,architecture,clean-architecture,Architecture,Clean Architecture,我正在阅读“组成原理”部分 在这里,作者解释了组件设计的三个原则。我想我有点孤立地理解他们 重用/发布等效原则(REP) 我对这一点的理解是,为了使包可重用,需要有适当的发布跟踪机制(版本、文档等) 共同闭合原理(CCP) 这一条规定,出于相同原因而更改的类需要捆绑在同一个包中。目标是实现可维护性->如果应用程序中的某些内容发生更改,则可能会在单个软件包中更改(或仅更改几个) 通用重用原则(CRP) 如果用户依赖于某个包,则他们应该依赖于该包中的所有类。 也就是说,包应该只包含那些一起重用的类
我对这一点的理解是,为了使包可重用,需要有适当的发布跟踪机制(版本、文档等)
共同闭合原理(CCP)
这一条规定,出于相同原因而更改的类需要捆绑在同一个包中。目标是实现可维护性->如果应用程序中的某些内容发生更改,则可能会在单个软件包中更改(或仅更改几个) 通用重用原则(CRP)
如果用户依赖于某个包,则他们应该依赖于该包中的所有类。
也就是说,包应该只包含那些一起重用的类 在研究了这些原则之后,作者展示了这些原则的“三元组”,它类似于经典的CAP定理: 我的理解是,在设计组件时,您只能选择遵循三个原则中的两个 这是我不太明白的部分:
如果有人能提供这些缺失的可能配对的例子,那就太好了 通用闭包原则:不要让应用程序中的组件过于宽泛 倾向于一起更新的组件应分组在一起。如果在进行一次更改时许多组件需要更新,则组件之间可能存在耦合。随着组件之间耦合程度的增加,由于意外的用例和不完善的文档,一个组件中的微小更改产生广泛影响的可能性也随之增加 通用重用原则:不要使应用程序中的组件过于特定 如果组件用户需要组件的一个部分,则应包括组件的所有部分(因为它们是相关的/需要的)。从用户的角度来看,组件应该做好一件事。构成“一件事”的所有逻辑都应包含在组件中。将逻辑打包到组件中的主要好处是提高可用性和可维护性,重用单元应该是重用有用的单元 重用/发布等效原则:不要假设组件是完美的 手动传递单个类是不可维护的。要使给定组件有用,必须有一种机制来提供长期稳定性(例如:注意到的问题已修复,等等)。因此,应该有某种形式的发布流程,可以在其中记录问题,并可以找到和使用组件的更新版本 在从可用性和可维护性的角度确定给定组件的具体/广泛程度时,需要考虑权衡