结构模式之桥梁模式

桥梁模式的用意:一个行为有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();
	}
}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
桥梁模式(Bridge)是一种结构设计模式,它将抽象部分与实现部分分离,使它们可以独立变化。这种模式通过委托的方式将两个层次结构连接起来,从而减少它们之间的耦合度。 在C#中实现桥梁模式,首先需要定义抽象部分和实现部分的接口或抽象类。然后在抽象部分中持有一个指向实现部分的引用,并通过该引用将实现部分的具体实现委托给实现部分。 下面是一个简单的示例代码: ```csharp // 实现部分的接口 interface IImplementor { void OperationImpl(); } // 具体实现部分A class ConcreteImplementorA : IImplementor { public void OperationImpl() { Console.WriteLine("Concrete Implementor A"); } } // 具体实现部分B class ConcreteImplementorB : IImplementor { public void OperationImpl() { Console.WriteLine("Concrete Implementor B"); } } // 抽象部分的接口 interface Abstraction { void Operation(); } // 具体抽象部分 class RefinedAbstraction : Abstraction { private IImplementor implementor; public RefinedAbstraction(IImplementor implementor) { this.implementor = implementor; } public void Operation() { implementor.OperationImpl(); } } // 使用示例 class Program { static void Main(string[] args) { IImplementor implementorA = new ConcreteImplementorA(); Abstraction abstractionA = new RefinedAbstraction(implementorA); abstractionA.Operation(); // Output: Concrete Implementor A IImplementor implementorB = new ConcreteImplementorB(); Abstraction abstractionB = new RefinedAbstraction(implementorB); abstractionB.Operation(); // Output: Concrete Implementor B } } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值