gpt4 book ai didi

java - 松耦合-封装的区别

转载 作者:行者123 更新时间:2023-12-02 01:19:26 27 4
gpt4 key购买 nike

据我所知,到目前为止,我认为耦合与两个或多个类“互连”的程度有关。换句话说,一个类在何种程度上使用其他类的方法或变量。我们设计良好的软件系统的目标当然是保持低耦合(松散)。

我目前正在读一本书,其中明确指出,松散耦合的目标是通过设计系统来实现的,因此每个类仅使用其他类的API(公共(public)方法),而不直接使用它们的实例变量。因此,实例变量必须是私有(private)的。如果这就是重点,那么松耦合和强封装之间有什么区别?就我而言,后者指的是封装。关于 OO 软件开发的上述概念,实际上什么是正确的?

最佳答案

松耦合不仅仅是使用公共(public) API,它还是一种理解该 API 的能力,而不依赖于特定的实现。它还包括限制跨实现差异的依赖代码所需的更改量。

封装不仅仅是禁止直接属性访问。它还包括确保内部数据不会以可能导致意外行为的方式暴露(例如,返回内部结构的防御副本),并确保正确隔离行为,而不仅仅是数据,责任落实到位。

关于java - 松耦合-封装的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14633524/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com