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

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

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

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, 具体耦合!

你可能感兴趣的:(设计模式,后端,开发语言,java,软件设计,设计模式)