学习 云飞龙行 的桥接模式文章 研磨设计模式之 桥接模式-1
举个例子,在系统的消息通知里面,消息分为若干类消息(普通消息、重要消息...),发送方式也有若干种发送方式(邮件、短信、系统内发送...)
如果要把各种发送消息的方式穷尽,每种方式创建一个类,每个类都实现发送邮件方法的话 一共有n(邮件总数)*m(邮件发送方式)个类,在这里 这个接口一共有6个实现类。
如果我们再在消息类型中添加一个加急消息,就变成3*3=9个实现接口的类。
如果在再添加一个发送消息的方式,如腾讯通知,就变成了3*4=12个实现接口的类
怎么解决这个问题呢
我们创建一个接口,接口定义发送邮件的方式,然后我们写4个实现这个接口的类(邮件、短信、系统发送、通讯通知),然后我们再写一个抽象类,抽象类里面有一个接口的属性,通过构造函数给它赋值。
我们再针对抽象类写子类,子类调用抽象类里面的属性对象发送消息
使用的时候 我们先创建接口的实现类,然后创建抽象类的子类,将实现类传入子类的构造函数。这就实现了桥接