Maison  >  Article  >  Java  >  Exemple de code pour implémenter le mode Bridge en Java

Exemple de code pour implémenter le mode Bridge en Java

黄舟
黄舟original
2017-03-10 13:25:481242parcourir

Diagramme de classes :


/**
 * 手机壳、套
 * @author stone
 *
 */
public abstract class BaseCellphoneShell {
	public abstract void mapping();//对应匹配哪种手机
}
/**
 * 手机,桥接了 手机壳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();//对应哪种壳

}


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

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

}


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

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

}


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



Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn