Home > Java > javaTutorial > Sample code for implementing Bridge mode in Java

Sample code for implementing Bridge mode in Java

黄舟
Release: 2017-03-10 13:25:48
Original
1258 people have browsed it

Class diagram:


/**
 * 手机壳、套
 * @author stone
 *
 */
public abstract class BaseCellphoneShell {
	public abstract void mapping();//对应匹配哪种手机
}
Copy after login
/**
 * 手机,桥接了 手机壳BaseCellphoneShell
 * @author stone
 */
public abstract class BaseCellphone {
	
	private BaseCellphoneShell shell;

	public void setShell(BaseCellphoneShell shell) {
		this.shell = shell;
	}

	public BaseCellphoneShell getShell() {
		return shell;
	}

	public abstract void mapping();//对应哪种壳

}
Copy after login


/**
 * 手机的实现
 * @author stone
 *
 */
public class Cellphone extends BaseCellphone {

	@Override
	public void mapping() {
		System.out.println("本手机对应的壳是:");
		getShell().mapping();
	}

}
Copy after login


/**
 * 手机壳的实现
 * @author stone
 *
 */
public class CellphoneShell extends BaseCellphoneShell {

	@Override
	public void mapping() {
		System.out.println("壳----iphone6");
	}

}
Copy after login


/*
 * 桥接(Bridge)模式, 是结构型模式
 * 
 * 将抽象化与实现化脱耦,使得二者可以独立的变化,也就是说将他们之间的强关联变成弱关联,
 * 也就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以独立的变化。
 */
public class Test {
	public static void main(String[] args) {
		/*
		 * 在本例中:手机和手机壳之间有强关联的关系:要么手机对应一种壳(BaseCellphoneShell),要么壳对应一种手机(BaseCellphone)
		 * 手机可以有多维度变化,如依据品牌划分的、依据尺寸划分的、依据个性需求划分的等
		 * 手机壳也有多维度变化,因为它要适配上面划分出来的手机
		 * 将桥作在了BaseCellphone中,聚合接入了BaseCellphoneShell
		 */
		BaseCellphone cellphone = new Cellphone();
		cellphone.setShell(new CellphoneShell());//聚合接入
		cellphone.mapping();
	}
}
Copy after login



The above is the detailed content of Sample code for implementing Bridge mode in Java. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template