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

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

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


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

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, 具体耦合!
相关文章
|
4月前
软件复杂度问题之什么是高内聚低耦合设计,实现一个高内聚低耦合的接口该如何解决
软件复杂度问题之什么是高内聚低耦合设计,实现一个高内聚低耦合的接口该如何解决
|
6月前
|
设计模式 程序员 数据处理
C++ 职责链模式:轻松实现解耦和扩展性
C++ 职责链模式:轻松实现解耦和扩展性
85 1
|
6月前
模块功能高内聚低耦合
模块功能高内聚低耦合
59 1
|
6月前
|
Java API
关于“解耦”的思考
关于“解耦”的思考
45 0
|
6月前
软件设计原则:耦合与内聚
软件设计原则:耦合与内聚
150 0
|
敏捷开发 Java
如何降低类之间的耦合
如何降低类之间的耦合
65 0
|
设计模式 网络协议 测试技术
你的代码是否按照高内聚、低耦合的原则来设计的?
你的代码是否按照高内聚、低耦合的原则来设计的?
|
存储 安全 程序员
软件工程的耦合和内聚
软件工程的耦合和内聚
259 0