桥接模式

桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。

1.实现,每个手机品牌,都可以其方法

图示
在这里插入图片描述

phone类,,并调用Brand里的方法

package qiaojie;

public class phone {
		private Brand brand;

		public phone(Brand brand) {
			super();
			this.brand = brand;
		}
		
		protected void open() {
			this.brand.open();
		}
		protected void close() {
			brand.close();
		}
		protected void call() {
			brand.call();
		}
}

Brand类,定义一些接口

package qiaojie;

public interface Brand {
		void open();
		void close();
		void call();
}

继承一些方法,可以传进去值

package qiaojie;

public class FoledPhoen extends phone{
		public FoledPhoen(Brand brand) {
			super(brand);
		}
		public void open() {
			super.open();
			System.out.println("折叠式手机");
		}
		public void close() {
			super.open();
			System.out.println("折叠式手机");
		}
		public void call() {
			super.open();
			System.out.println("折叠式手机");
		}
		
}

定义另外一个继承类,实现方法

package qiaojie;

public class UpRightPhone extends phone{
	public UpRightPhone(Brand brand) {
		super(brand);
	}
	public void open() {
		super.open();
		System.out.println("直立式手机");
	}
	public void close() {
		super.open();
		System.out.println("直立式手机");
	}
	public void call() {
		super.open();
		System.out.println("直立式手机");
	}
}

定义品牌,继承phone类

package qiaojie;

public class vivo implements Brand{
	@Override
	public void open() {
		// TODO Auto-generated method stub
		System.out.println("vivo手机开机");
	}

	@Override
	public void close() {
		// TODO Auto-generated method stub
		System.out.println("vivo手机关机");
	}

	@Override
	public void call() {
		// TODO Auto-generated method stub
		System.out.println("vivo手机打电话");
	}
}

定义另一品牌的类

package qiaojie;

public class xiaomi implements Brand{

	@Override
	public void open() {
		// TODO Auto-generated method stub
		System.out.println("小米手机开机");
	}

	@Override
	public void close() {
		// TODO Auto-generated method stub
		System.out.println("小米手机关机");
	}

	@Override
	public void call() {
		// TODO Auto-generated method stub
		System.out.println("小米手机打电话");
	}
		
}

client,测试类,实现他的功能

package qiaojie;

public class client {
	public static void main(String[] args) {
		phone phone1=new FoledPhoen(new xiaomi());
		phone1.open();
		phone1.close();
		phone1.call();
		
		phone phone2=new FoledPhoen(new xiaomi());
		phone2.open();
		phone2.close();
		phone2.call();
		
		UpRightPhone phone3=new UpRightPhone(new xiaomi());
		phone3.open();
		phone3.close();
		phone3.call();
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值