浅谈设计模式-桥接模式

最近在学习设计模式,简单记录一下

大话设计模式有写:

桥接模式(Bridge):将抽象部分与他的实现部分分离,使他们都可以独立的变化。

   也就是实现系统可能有多角度分类,每一种分类都有可能变化,

   那么就把这种多角度分离出来让他们独立变化,减少他们之间的耦合。

举个例子:

比如做一个蛋糕,

在形状上,可以有圆形和方形,

在类型上,可以有奶油类型和水果类型。

如果针对每种类型和形状都写成单独的类会有四种,即圆形水果蛋糕、圆形奶油蛋糕、方形水果蛋糕、方形奶油蛋糕,

当增加形状和类型时会产生非常多的类,这显然不是我们所希望的,这时就要用到桥接模式。

代码:(小提示:eclipse,复制代码后,鼠标点击包那里,直接粘贴,一个类就自动建好了)

//蛋糕形状接口
public interface CakeShape {
	public void shape();
}


//蛋糕形状:方形
public class Square implements CakeShape{
	@Override
	public void shape() {
		System.out.println("蛋糕形状:方形");
	}
}

//蛋糕形状:圆形
public class Circle implements CakeShape{
	@Override
	public void shape() {
		System.out.println("蛋糕形状:圆形");
	}
}

//蛋糕类型抽象类
public abstract class CakeType {
	//引用蛋糕形状接口
	CakeShape cakeShape;
	//蛋糕类型
	void type(){};
}

public class Cream extends CakeType{
	public void type(){
		System.out.println("蛋糕类型:奶油");
	}
}

//蛋糕类型:水果
public class Fruit extends CakeType{
	public void type(){
		System.out.println("蛋糕类型:水果");
	}
}

//测试类
public class Product {
	public static void main(String[] args) {
		CakeType ct = new Fruit();
		ct.cakeShape = new Circle();
		ct.type();
		ct.cakeShape.shape();
	}
}

输出结果:

蛋糕类型:水果
蛋糕形状:圆形


可以看到,桥接模式主要通过一个接口类,和一个抽象类,将两种子类型进行分离,由抽象类引用接口,实现调用。

桥接模式和很多模式都很像,比如策略模式、工厂模式,有很多大神分析区别,有兴趣的可以看下这篇文章

点击打开链接http://blog.youkuaiyun.com/youthon/article/details/7653389。

其实网上有很多人写各种设计模式,我写这篇文章的主要目的是想记录一下自己的学习历程,养成一个写博客的好习惯,

尽量做到简单易懂,不想弄太多文字定义的东西。

能力不足,写的很浅,有错误地方希望大神多多指导。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值