结构模式之桥梁模式

桥梁模式的用意:一个行为有2个因素引起他变化比如电脑,有台式电脑,笔记本电脑等等,然后笔记本电脑又由不同的厂家生产的。这边引起电脑变化的因素有2个 一个是电脑的类型 另一个是电脑的生产厂家。

package com.djk.design.struct.brige;

public interface Computer 
{
	void desc();
}

package com.djk.design.struct.brige;

public interface Company 
{
	void companyName();
}

package com.djk.design.struct.brige;

public abstract class DeskComputer  implements Computer
{
	private Company company;

	public DeskComputer(Company company) {
		super();
		this.company = company;
	}
	
	@Override
	public void desc()
	{
		if (company != null)
		{
			company.companyName();
		}
		System.out.println("台式电脑");
		
		method();
	}

	abstract void method();
}
package com.djk.design.struct.brige;

public class DeskComputerImpl extends DeskComputer
{

	public DeskComputerImpl(Company company) {
		super(company);
	}

	@Override
	void method() {
		
	}

}
package com.djk.design.struct.brige;

public abstract class PersonComputer implements Computer
{
	private Company company;

	public PersonComputer(Company company) {
		super();
		this.company = company;
	}

	@Override
	public void desc()
	{
		if (company != null)
		{
			company.companyName();
		}
		System.out.println("个人电脑");
		
		method();
	}

	abstract void method();
}
package com.djk.design.struct.brige;

public class PersonComputerImpl extends PersonComputer
{

	public PersonComputerImpl(Company company)
	{
		super(company);
	}

	@Override
	void method()
	{
		
	}


}

package com.djk.design.struct.brige;

public class AppleCompany implements Company
{

	@Override
	public void companyName()
	{
		System.out.println("苹果公司");
	}
	
}
package com.djk.design.struct.brige;

public class HpCompany implements Company
{


	@Override
	public void companyName() {
		System.out.println("惠普公司");		
	}

}


package com.djk.design.struct.brige;

public class Client {
	public static void main(String[] args) 
	{
		Computer computer1 = new PersonComputerImpl(new HpCompany());
		computer1.desc();
		
		Computer computer2 = new DeskComputerImpl(new AppleCompany());
		computer2.desc();
	}
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值