设计模式——桥接模式(Bridge)

来源:互联网 发布:中国网络墙谁设计的 编辑:程序博客网 时间:2024/06/06 17:30

桥接模式的核心思想是将抽象与实现分离,使它们都可以独立的变化而不互相影响,目的是脱耦。

1、模式中的角色

抽象角色(Abstraction 接口):给出抽象化定义并持有一个实现化对象的引用。

修正抽象化角色(Refined Abstraction类):扩展抽象化角色,改变和修正父类对抽象化的定义。

实现化角色(Implementor接口):给出实现化的接口角色的接口,但不给出具体的实现。

具体实现化角色(Concrete Implementor类):给出实现化角色接口的具体实现。


2、角色关系图


3、实例

描述:现在有多种汽车,每种汽车分运输客人和运输货物

a.抽象角色(Vehicle接口)

package com.interfaces;public abstract class Vehicle {private Transport implementor;public void transport(){implementor.transport();}public Transport getImplementor() {return implementor;}public void setImplementor(Transport implementor) {this.implementor = implementor;}}

b.修正抽象化角色(Train类和Car类)

Train类:

package com.vehicleImpl;import com.interfaces.Vehicle;public class Train extends Vehicle{@Overridepublic void transport() {// TODO Auto-generated method stubSystem.out.print("Train: ");super.transport();}}

Car类:

package com.vehicleImpl;import com.interfaces.Vehicle;public class Car extends Vehicle {@Overridepublic void transport() {// TODO Auto-generated method stubSystem.out.print("car: ");super.transport();}}
c.实现化角色(Transport接口)

package com.interfaces;public interface Transport {public abstract void transport();}
d.具体实现化角色(PersonTransport类和GoodsTransport类)

PersonTransport类:

package com.transportImpl;import com.interfaces.Transport;public class PersonTransport implements Transport {@Overridepublic void transport() {// TODO Auto-generated method stubSystem.out.print("Transport person\n");}}

GoodsTransport类

package com.transportImpl;import com.interfaces.Transport;public class GoodsTransport implements Transport{@Overridepublic void transport() {// TODO Auto-generated method stubSystem.out.print("Transport goods\n");}}


后记:

点点滴滴

0 0
原创粉丝点击