零耦合?抽象耦合?具体耦合?

简介: 零耦合?抽象耦合?具体耦合?

零耦合是指两个或多个组件之间没有任何依赖关系,彼此独立,不会因为一个组件的变化而影响其他组件,零耦合是一种理想状态,但在实际开发中很难达到,因为不同的模块通常需要通过某种方式进行交互和合作。


抽象耦合是指组件之间的依赖关系是通过抽象的接口或协议来实现的,组件之间只关注对接口的依赖,而不关心具体的实现。抽象耦合可以实现松耦合,使得组件更加灵活、可扩展和易于维护。

package com.wjr;
interface MessageSender{
    void sendMessage(String message);
}
class EmailSender implements MessageSender{
    @Override
    public void sendMessage(String message) {
         System.out.println("发送邮件----"+message);
    }
}
 class MessageService{
    private MessageSender messageSender ;
    public MessageService(MessageSender messageSender){
        this.messageSender=messageSender;
    }
    public void sendMessage(String message){
        messageSender.sendMessage(message);
    }
}
public class abstractCoupling{
    public static void main(String[] args) {
        MessageSender sender=new EmailSender();
        MessageService service=new MessageService(sender);
        service.sendMessage("hello,抽象耦合");
    }
}

输出:

发送邮件----hello,抽象耦合

具体耦合是指组件之间的依赖关系是通过具体的类、对象或接口来实现的

package com.wjr;
class MessageService {
    public void sendMessage(String message) {
       System.out.println("发送邮件---"+message);
    }
}
 class Main {
    public static void main(String[] args) {
        MessageService service = new MessageService();
        service.sendMessage("Hello, 具体耦合!");
    }
}

输出如下所示:

发送邮件---Hello, 具体耦合!
相关文章
|
XML 域名解析 JSON
【RESTful】RESTful API 接口设计规范 | 示例
【RESTful】RESTful API 接口设计规范 | 示例
12663 0
【RESTful】RESTful API 接口设计规范 | 示例
|
消息中间件 设计模式 存储
C++观察者模式探索:从设计到应用,一站式全面解析
C++观察者模式探索:从设计到应用,一站式全面解析
562 2
|
消息中间件 负载均衡 RocketMQ
RocketMQ的消费模式
在公司的技术分享中,就有聊到rocketmq的消费模式,特此总结一下。 在说消费之前,这里先说一下rocketmq中group的概念吧,一个group代表的是逻辑相同的一组实例,最可以表达这个概念的是我们将一个项目部署多个实例,那么这个项目的集群就可以称之为一个group。
1196 0
RocketMQ的消费模式
|
网络协议 Java 编译器
Thrift在C++中的使用
Thrift在C++中的使用
Thrift在C++中的使用
|
4月前
|
JSON Java 数据安全/隐私保护
qq群成员qq号一键提取, 不加群就可以提取QQ群成员, qq群成员提取器
完整的QQ群成员提取功能,包括登录验证、成员获取、数据解析和导出功能。代码结构清晰
|
7月前
|
数据可视化 Python
【负荷预测】基于变分模态分解(VMD-CNN-LSTM)的短期电力负荷预测【Python】
本项目实现了一种基于变分模态分解(VMD)的短期电力负荷预测模型——VMD-CNN-LSTM。通过VMD技术将原始电力负荷数据分解为多个平稳子序列,结合温度和时间等特征构建矩阵,输入CNN-LSTM模型训练,最终叠加重构得到预测结果。此方法有效应对非线性和非平稳性引起的误差,精度高且稳定性强。程序采用Python编写,注释清晰,运行稳定,并提供直观的可视化结果。附带部分代码及详细运行结果展示,下载链接已提供。
|
12月前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
306 5
什么是多态?面向对象中对多态的理解
本文介绍了面向对象编程中的多态概念,包括其定义、优点以及编译时多态和运行时多态的具体实现方式。通过实例展示了函数重载、运算符重载、虚函数、接口和抽象类的应用,帮助读者深入理解多态的灵活性和可扩展性。
813 7
|
算法 Java 数据安全/隐私保护
国密加密算法简介
国密指国家密码局认定的国产密码算法,主要包括SM1、SM2、SM3、SM4等,并持续完善。SM1是对称加密算法,加密强度与AES相当,需加密芯片支持;SM2是非对称加密,基于ECC算法,签名和密钥生成速度优于RSA;SM3为杂凑算法,安全性高于MD5;SM4为对称加密算法,用于无线局域网标准。本文提供使用Java和SpringBoot实现SM2和SM4加密的示例代码及依赖配置。更多国密算法标准可参考国家密码局官网。
1842 1
|
存储 安全 C++
【C++ 17 新特性 std::variant】C++ std::variant 的 深入探讨
【C++ 17 新特性 std::variant】C++ std::variant 的 深入探讨
705 1
下一篇
开通oss服务