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

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

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


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

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, 具体耦合!
相关文章
|
8月前
|
设计模式 程序员 数据处理
C++ 职责链模式:轻松实现解耦和扩展性
C++ 职责链模式:轻松实现解耦和扩展性
100 1
没有抽象就没有封装继承多态
没有抽象就没有封装继承多态
为什么没有抽象,就没有封装继承多态
为什么没有抽象,就没有封装继承多态
68 0
|
8月前
|
Java API
关于“解耦”的思考
关于“解耦”的思考
55 0
|
8月前
软件设计原则:耦合与内聚
软件设计原则:耦合与内聚
182 0
|
敏捷开发 Java
如何降低类之间的耦合
如何降低类之间的耦合
70 0
|
设计模式 存储 Java
JAVA设计模式9:桥接模式,将抽象部分与实现部分分离
JAVA设计模式9:桥接模式,将抽象部分与实现部分分离
114 0
|
存储 安全 程序员
软件工程的耦合和内聚
软件工程的耦合和内聚
278 0