桥接设计模式自我理解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码实现:
1.首先把行为抽象为一个接口
Action.java

package cn.gf.action;

public interface Action {
	//抽象出行为方法
	public void action();
}

2.其次用具体的行为实现接口和接口中的方法
坐下的:Sit.java

package cn.gf.action;

public class Sit implements Action{

	@Override
	public void action() {
		// TODO Auto-generated method stub
		System.out.println("我乖乖滴坐下来。。。");
	}

}

跳火圈的:jump.java

package cn.gf.action;

public class jump implements Action{

	@Override
	public void action() {
		// TODO Auto-generated method stub
		System.out.println("我勇敢滴跳过了火圈。。。");
	}

}

3.然后把动物类抽象出来形成一个抽象类
Animal.java

package cn.gf.Animal;

import cn.gf.action.Action;

public abstract class Animal {
	//动物拥有行为的属性
	public Action act;
	//动物都具有某种行为的能力(方法)
	public abstract void doAction();

	public Action getAct() {
		return act;
	}

	public void setAct(Action act) {
		this.act = act;
	}
	
}

4.最后用具体的实体类继承动物类
Tiger.java

package cn.gf.Animal;

public class Tiger extends Animal{

	@Override
	public void doAction() {
		// TODO Auto-generated method stub
		System.out.println("我是跳跳虎");
		act.action();
	}

}

Cat.java

package cn.gf.Animal;

public class Cat extends Animal{

	@Override
	public void doAction() {
		// TODO Auto-generated method stub
		System.out.println("我是汤姆猫。。");
		act.action();
	}

}

Test.java

import cn.gf.Animal.Animal;
import cn.gf.Animal.Cat;
import cn.gf.Animal.Tiger;
import cn.gf.action.Action;
import cn.gf.action.Sit;
import cn.gf.action.jump;

public class Test {
	public static void main(String[] args) {
		Action jump = new jump();
		Action sit = new Sit();
		Animal tiger = new Tiger();
		tiger.setAct(jump);
		tiger.doAction();
		System.out.println("***********************");
		Animal cat = new Cat();
		cat.setAct(sit);
		cat.doAction();
	}
}

Console
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值