设计模式之桥接模式(Bridge)简单实例

桥接模式

1桥接模式就是适配器模式的变种,把另外一个类也变成了接口或抽象类,让他更加动态,其实设计模式的最终目的就是为了让代码改动量更小的前提下完成要扩展的业务,方便维护。就是个加强版的适配器模式。原理没有太大差别,也不算难

2 具体实现类

/**
 * 
 * @author chaigw
 *
 */
public class BridgeDesign {

	public static void main(String[] args) {
		BridgeDesign bridge = new BridgeDesign();

		GradeOne one= bridge.new GradeOne("smart");
		one.getGradeName();

		GradeTwo two= bridge.new GradeTwo("smart");
		two.getGradeName();
		
		System.out.println("-------------->");
		
		GradeOne one2= bridge.new GradeOne("stupid");
		one2.getGradeName();

		GradeTwo two2= bridge.new GradeTwo("stupid");
		two2.getGradeName();
		
	}

	class GradeOne extends Grade{
		private String gradeName = "一班的";
		Student student = null;
		public GradeOne(String type) {
			this.student = getStudent(type);
		}
		
		public void getGradeName()
		{
			System.out.println("小明是"+gradeName);
			student.getStudentType();
		}
	}
	
	class GradeTwo extends Grade{
		private String gradeName = "二班的";
		Student student = null;
		public GradeTwo(String type) {
			this.student = getStudent(type);
		}
		
		public void getGradeName()
		{
			System.out.println("小明是"+gradeName);
			student.getStudentType();
		}
	}
	
	
	abstract class Grade
	{
		abstract void getGradeName();
		
		public Student getStudent(String name)
		{
			if("smart".equals(name))
			{
				return new SmartStudent();
			}
			else if ("stupid".equals(name)) {
				return new StupidStudent();
			}
			else {
//				System.out.println("类型比较一般");
				return null;
			}
		}
	}
	
	interface Student
	{
		void getStudentType();
	}
	
	class StupidStudent implements Student{

		
		public void getStudentType() {
			System.out.println("小明是笨的学生");
		}
		
	}
	
	class SmartStudent implements Student{

		public void getStudentType() {
			System.out.println("小明是聪明的学生");
		}
		
	}
}




3 结果

小明是一班的
小明是聪明的学生
小明是二班的
小明是聪明的学生
-------------->
小明是一班的
小明是笨的学生
小明是二班的
小明是笨的学生




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静山晚风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值