编程语言
首页 > 编程语言> > Java设计模式之桥梁模式

Java设计模式之桥梁模式

作者:互联网

 一、桥梁模式简介

         桥梁模式的作用主要是将抽象和实现分离,抽象类与接口的实现分离,抽象的实体与实体的接口特性进行分离。

 

 

二、桥梁模式的UML图 

        

 

三、桥梁模式的代码实现

          1. 抽象类:

package com.atguigu.bridge;

public abstract class Phone {
	

	private Brand brand;

	
	public Phone(Brand brand) {
		super();
		this.brand = brand;
	}
	
	protected void open() {
		this.brand.open();
	}
	protected void close() {
		brand.close();
	}
	protected void call() {
		brand.call();
	}
	
}

       2.  接口类:   

package com.atguigu.bridge;


//功能特点
public interface Brand {
	void open();
	void close();
	void call();
}

      3.  抽象的实现: 

package com.atguigu.bridge;



public class FoldedPhone extends Phone {

	
	public FoldedPhone(Brand brand) {
		super(brand);
	}
	
	public void open() {
		super.open();
		System.out.println(" 开机");
	}
	
	public void close() {
		super.close();
		System.out.println(" 关机");
	}
	
	public void call() {
		super.call();
		System.out.println("打电话 ");
	}
}

 

package com.atguigu.bridge;

public class UpRightPhone extends Phone {
		
	
	
		public UpRightPhone(Brand brand) {
			super(brand);
		}
		
		public void open() {
			super.open();
			System.out.println("开机");
		}
		
		public void close() {
			super.close();
			System.out.println("关机");
		}
		
		public void call() {
			super.call();
			System.out.println("打电话");
		}
}

 4. 接口实现: 

 

package com.atguigu.bridge;

public class XiaoMi implements Brand {

	@Override
	public void open() {
		// TODO Auto-generated method stub
		System.out.println(" 小米开机 ");
	}

	@Override
	public void close() {
		// TODO Auto-generated method stub
		System.out.println(" 小米关机 ");
	}

	@Override
	public void call() {
		// TODO Auto-generated method stub
		System.out.println("小米打电话");
	}

}
package com.atguigu.bridge;

public class HuaWei implements Brand {

	@Override
	public void open() {
		// TODO Auto-generated method stub
		System.out.println("华为开机");
	}

	@Override
	public void close() {
		// TODO Auto-generated method stub
		System.out.println("华为关机");
	}

	@Override
	public void call() {
		// TODO Auto-generated method stub
		System.out.println("华为打电话");
	}

}

5. 测试类

  

package com.atguigu.bridge;

public class Client {

	public static void main(String[] args) {
		
		Phone phone1 = new FoldedPhone(new XiaoMi());
		
		phone1.open();
		phone1.call();
		phone1.close();
		
		System.out.println("=======================");
		
		Phone phone2 = new FoldedPhone(new HuaWei());
		
		phone2.open();
		phone2.call();
		phone2.close();
		
		System.out.println("==============");
		
		UpRightPhone phone3 = new UpRightPhone(new XiaoMi());
		
		phone3.open();
		phone3.call();
		phone3.close();
		
		System.out.println("==============");
		
		UpRightPhone phone4 = new UpRightPhone(new HuaWei());
		
		phone4.open();
		phone4.call();
		phone4.close();
	}

}

6.打印结果:

小米开机
开机
小米打电话
打电话
小米关机
关机
=======================
华为开机
开机
华为打电话
打电话
华为关机
关机
==============
小米开机
开机
小米打电话
打电话
小米关机
关机
==============
华为开机
开机
华为打电话
打电话
华为关机
关机
 

四、桥梁模式的实际应用

          在实际应用中,发消息就是一个典型的应用,可以通过桥梁模式将抽象的消息与消息的具体实现分离开来,消息有三种: 普通消息,紧急消息,特别紧急消息。 而消息的发送方式有三种: 短信、邮件、电话。

 

 

参考博客: https://www.cnblogs.com/betterboyz/p/9361784.html

 

标签:Java,void,桥梁,System,println,close,设计模式,public,out
来源: https://blog.csdn.net/qq_33036061/article/details/104711539