个人对设计模式的理解-->桥接模式

概念:将抽象部分和实现部分分离,使它们都可以独立的变化,是一种结构性模式。


举例:人都要穿衣服,人分为男人和女人,衣服有衬衫,裤子,裙子等多种,我们要代码模拟人穿衣服,若不使用桥接模式,

必须告诉是男人还是女人,是哪种衣服。

使用桥接模式,只需要定义一个抽象类人,和衣服接口,抽象类有穿衣服方法,衣服接口有衣服类型,人首先要得到衣服。

这样,人和衣服都可以独立的变化,即实现了桥接模式。


代码:

package com.tc.gof.bridge;
/**
 * 抽象类 人
 *
 */
public abstract class Person {
	// 衣服
	private Clothing clothing;
	// 类型 男人或女人
	private String type;
	
	public Person(Clothing clothing, String type){
		this.clothing = clothing;
		this.type = type;
	}
	
	/**
	 * 穿衣服
	 */
	public  void clothing(){
		System.out.print(type);
		clothing.dressClothing();
	}
	
}
package com.tc.gof.bridge;
/**
 * 
 * 男人
 */
public class Man extends Person {

	public Man(Clothing clothing) {
		super(clothing,"男人");
	}
	
}
package com.tc.gof.bridge;
/**
 * 衣服接口
 *
 */
public interface  Clothing {
	// 穿衣服
	public void dressClothing();
	
}

package com.tc.gof.bridge;
/**
 * 衬衫
 *
 */
public class Shirt implements Clothing {

	public void dressClothing() {
		System.out.println("穿上衬衫");
	}

}

package com.tc.gof.bridge;
/**
 * 裙子
 *
 */
public class Skirt implements Clothing {

	public void dressClothing() {
		System.out.println("穿上裙子");
	}

}

测试代码:

package com.tc.gof.bridge;

public class BridgeTest {	
	
	public static void main(String[] args) {
		Clothing clothing = new Shirt();
		Person man = new Man(clothing);
		man.clothing();
	}
	
}
输出:男人穿上衬衫


个人只是简单举个例子,http://www.oschina.net/question/1435262_140274?fromerr=psE1Hq6U,这里有详细解释




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值