桥接模式

本文探讨了如何使用桥接设计模式来解决电子商务网站中不同类型的发送消息通知问题。消息分为普通、加急和特急,每种类型有不同的处理方式。同时,消息发送手段包括系统内消息、手机短信和邮件。通过桥接模式,可以灵活组合消息类型和发送手段,实现了代码的解耦。文章展示了模式的结构图、类图,并提供了部分代码实现。
摘要由CSDN通过智能技术生成

软件设计模式之标题模式

桥接模式:电子商务网站常有这样的功能:发送消息通知,比如订货发货通知等,从业务上看,消息分为普通消息、加急消息和特急消息多种不同的消息类型,其业务处理是不一样的,比如加急消息是在消息上添加加急标记,而特急消息是添加了加急标记外,还会做一条催促的记录,多久不完成会继续催促。从发送消息的手段上看,又有系统内消息、手机短信消息、邮件等。请使用合适的设计模式进行设计,绘制所选择模式的结构图,并绘制该案例的类图,并编写代码实现并进行演示

/**
 * @author zzw
 * @create 2020/11/18-15:16
 * 测试类
 */
public class zzw34Test {
    public static void main(String[] args) {
        //手机短信发送普通信息
        zzw34GeneralMessage gm=new zzw34GeneralMessage();
        gm.setSentMean(new zzw34PhoneMessage());
        gm.sendmg();

        //邮件发送加急信息
        zzw34UrgentMessage ug=new zzw34UrgentMessage();
        ug.setSentMean(new zzw34MailMessage());
        ug.sendmg();

        //系统内发送特急信息
        zzw34UrgentNews un=new zzw34UrgentNews();
        un.setSentMean(new zzw34SystemMessage());
        un.sendmg();

    }

}


其他类,两个接口:
总代码预览:
在这里插入图片描述

/**
 * @author zzw
 * @create 2020/11/18-15:02
 * 发送方式接口
 */
public interface zzw34SendMeans {
    String sendMeans();
}

/**
 * @author zzw
 * @create 2020/11/18-14:50
 * 发送信息重要程度接口
 */
public interface zzw34SendMessage {
    void sendmg();
}

实现类:

/**
 * @author zzw
 * @create 2020/11/18-14:52
 */
public class zzw34GeneralMessage implements zzw34SendMessage {
    @Override
    public void sendmg() {
        System.out.println(sm.sendMeans()+"普通信息");
    }

    private zzw34SendMeans sm;

    void setSentMean(zzw34SendMeans sm){
        this.sm=sm;
    }

}

/**
 * @author zzw
 * @create 2020/11/18-15:07
 */
public class zzw34MailMessage implements zzw34SendMeans {
    @Override
    public String sendMeans() {
        return "邮件";
    }
}

/**
 * @author zzw
 * @create 2020/11/18-15:06
 */
public class zzw34PhoneMessage implements zzw34SendMeans{
    @Override
    public String sendMeans() {
        return "手机短信";
    }
}


/**
 * @author zzw
 * @create 2020/11/18-15:04
 */
public class zzw34SystemMessage implements zzw34SendMeans {
    @Override
    public String sendMeans() {
        return "系统内";
    }
}

/**
 * @author zzw
 * @create 2020/11/18-14:54
 */
public class zzw34UrgentMessage implements zzw34SendMessage {

    @Override
    public void sendmg() {
        System.out.println(sm.sendMeans()+"发送加急消息并添加加急标记");
    }

    private zzw34SendMeans sm;

    void setSentMean(zzw34SendMeans sm){
        this.sm=sm;
    }
}


/**
 * @author zzw
 * @create 2020/11/18-14:55
 */
public class zzw34UrgentNews implements zzw34SendMessage {
    @Override
    public void sendmg() {
        System.out.println(sm.sendMeans()+"普通消息并添加特急标记和催促记录");
    }

    private zzw34SendMeans sm;

    void setSentMean(zzw34SendMeans sm){
        this.sm=sm;
    }
}

结果:
手机短信普通信息
邮件发送加急消息并添加加急标记
系统内普通消息并添加特急标记和催促记录


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值