java松耦合_java中关于高聚合与松耦合

java松耦合_java中关于高聚合与松耦合把系统分为各个功能不同的板块 以电脑主机为例 高聚合就是指主板 cup 等内的各种零件之间的紧密联系 松耦合就是指主板与 cpu 的连接 主板与显卡的连接 主板与电源的连接 把显卡 主板内的零件看作小号零件 这些小号零件组成了大号零件 显卡 和 主板 小号零件之间的连接相比大号零件之间的连接更紧密 紧密的联系可以发挥出更高的性能 高聚合 高 性能高 聚合 联系紧密 不那么紧密的联系便于灵活使用

把系统分为各个功能不同的板块,以电脑主机为例,高聚合就是指主板,cup等内的各种零件之间的紧密联系,松耦合就是指主板与cpu的连接,主板与显卡的连接,主板与电源的连接。把显卡,主板内的零件看作小号零件,这些小号零件组成了大号零件“显卡”和“主板”,小号零件之间的连接相比大号零件之间的连接更紧密。紧密的联系可以发挥出更高的性能(高聚合-高“性能高”,聚合-“联系紧密”),不那么紧密的联系便于灵活使用(松耦合-容易拼接的性能不错的接口)。简洁是常常提到的,相比说一大堆,高聚合,松耦合。有没有言简意赅?软件系统中的该发挥高性能的就弄成高聚合板块,需要更高的自由度的就考虑开一个松耦合接口,这就是我暂时的理解了。

以下是关于模块的部分编写原则

抽象原则(抽象:从具体事物抽出、概括出它们共同的方面、本质属性与关系等,而将个别的、非本质的方面、属性与关系舍弃,这种思维过程,称为抽象。–引用于百度百科)

使用简洁精确的描述刻画模块的行为(或者功能),这种遵循抽象原则的模块刻画方式是“契约接口”(contractual interface)

我们把一号模块看成是“服务提供者”,把使用一号模块的服务的其他模块(例如2号模块,3号模块)看作是1号模块的“客户”。把契约接口看成是服务提供者与客户之间的“服务约定”。服务约定只需要描述能够提供“什么”服务,而不是服务是“怎样”提供的。因此,也许提供的服务很复杂但也只是需要一份简单的服务契约就可以。由于具有简单的服务约定(服务契约),同是服务提供者保证遵守服务约定,因此客户要想使用复杂的服务,只需要理解简单的契约约定。约定接口允许客户使用服务而不需要关心服务的复杂性。也就是模块的复杂性被隐藏了。

就像电话,不需要了解是怎么制作的就能轻松使用。

封装原则

实现模块功能的同时让模块约定接口与模块互不接触,以及对模块的客户来说是不可见的

也叫信息隐藏原则。

封装是为了减少模块间的耦合度,客户知道的模块实现的细节越少,模块和他的客户间的耦合度就越低。封装的一个重要好处是,如果客户只知道约定接口,就可以在不影响客户的情况下修改实现,条件是契约(约定)接口保持一致。

电话服务为例,过去,信号是以模拟模式传输的,现在信号是以数字模式加密传输。尽管电话服务的实现方式改变了,但契约接口仍然保持一致。对电话用户来说,他们收到的唯一影响就是能够享受到更好的通话质量和更安全的通话传输。

——我的学习记录

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230395.html原文链接:https://javaforall.net

(0)
上一篇 2026年2月25日 下午7:01
下一篇 2026年2月25日 下午7:22


相关推荐

  • STL空间配置器解析和实现

    1.一级空间配置器实现1.1接口1.2实现2.二级空间配置器实现2.1接口2.2实现3.配置器标准接口4.测试

    2021年12月28日
    55
  • Emgu CV3+C图像处理(二):EmguCV主要模块简介

    Emgu CV3+C图像处理(二):EmguCV主要模块简介按 EmguCV3 C 图像处理 一 EmguCV 安装配置与使用中安装 EmguCV 后 打开其文件夹可以看到 常用模块 EmguCV 中具有不同功能的类被分别归类放置在不同的命名空间下 下面简单介绍几个常用的命名空间 命名空间模块说明 Emgu CVOpenCV 图像处理功能的包装 包括 cv String 的包装器 CvString 类 基本图像处

    2026年3月18日
    4
  • MySQL最左匹配原则,道儿上兄弟都得知道的原则

    MySQL最左匹配原则,道儿上兄弟都得知道的原则自 MySQL5 5 版本起 主流的索引结构转为 B 树 B 树的节点存储索引顺序是从左向右存储 在检索匹配的时候也要满足自左向右匹配 目录一 最左匹配原则的原理二 违背最左原则导致索引失效的情况三 查询优化器偷偷干了哪些事儿四 需要你 mark 的知识点 1 如何通过有序索引排序 避免冗余执行 orderby2 like 语句的索引问题 3 不要在列上进行运算 4 索引不会包含有 NULL 值的列 5 尽量选择区分度高的列作为索引 6 覆盖索引的好处 通常我们在建立联合索引的时候 相信建立过索引的同学们会发现

    2026年3月19日
    3
  • JS总结1

    JS总结1

    2021年8月10日
    57
  • pycharm里的HTML添加背景,pycharm怎么改变背景颜色-pycharm设置背景颜色的方法

    pycharm里的HTML添加背景,pycharm怎么改变背景颜色-pycharm设置背景颜色的方法pycharm 这款软件相信有很多编程人员都有所了解 它是一款专用编辑 Python 语言的编程软件 其中有非常丰富的语言工具可以让用户在编写代码的过程中更加方便 那么大家都知道敲代码的过程都是比较枯燥乏味的 而在这款软件中用户可以自定义界面的样式和字体大小 将界面更改成自己喜欢的背景颜色之后 编写代码的过程中也会更加放松一些 接下来小编就跟大家分享一下 pycharm 这款软件中设置背景颜色的具体操作方法

    2026年3月27日
    2
  • native2ascii运用

    native2ascii运用1.native2ascii命令行的格式native2ascii-[option][inputfile[outputfile]]说明:-[option]:表示命令开关,有两个选项可供选择:

    2022年7月2日
    24

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号