欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

BRDIGE(桥接)----对象结构型模式研究 博客分类: 设计模式研究 企业应用SOAP 

程序员文章站 2024-03-21 21:56:22
...
  前两天对桥接模型进行了研究,以前也有研究就是不用就忘了,今天把它记录下来,供大家分享:要扣字眼,理解桥,桥到底搭在什么地方。
1.意图
   将抽象部分与它的实现部分分离,使它们都可以独立地变化。

BRDIGE(桥接)----对象结构型模式研究
            
    
    博客分类: 设计模式研究 企业应用SOAP 
                  用抽象类的方式
代码
Window 类实现:
public abstract class Window : IconWindow, TransientWindow
	{
		public virtual WindowImp WindowImp
		{
			get;set;
		}
		public abstract void DrawText();
		public abstract void DrawCloseBox();

	}

IconWindow类:
public class IconWindow
	{
		public virtual void DrawBorder()
		{
			throw new System.NotImplementedException();
		}

	}

WindowImp类
public abstract class WindowImp
	{
		public abstract void DecDrawText();

		public abstract void DecDrawLine();

	}

XWindowImp 类
public class XWindowImp : WindowImp
	{
		public override void DecDrawText()
		{
			throw new System.NotImplementedException();
		}

		public override void DecDrawLine()
		{
			throw new System.NotImplementedException();
		}

	}


TransientWindow类
public class TransientWindow
	{
		public virtual void DrawCloseBox()
		{
			throw new System.NotImplementedException();
		}

	}

2.动机说明
   当一个抽象可能有多个实现时,通常用继承来协调它们。抽象类定义对该抽象的接口,而具体的子类则用不同的方式加以实现。但是此方法不够灵活。继承机制将抽象部分与它的实现部分固定在一起,使得难以对抽象部分和实现部分独立地进行修改、扩充和重用。
所以用桥接进行扩展和修改

BRDIGE(桥接)----对象结构型模式研究
            
    
    博客分类: 设计模式研究 企业应用SOAP 
                  用接口的方式

接口IEngine
public interface IEngine 
	{
		void Start();

		void Stop();

	}


Car类

public abstract class Car : IEngine
	{
		public virtual object IEngine _engine
		{
			get;
			set;
		}

		public Car(object IEngine engine)
		{
		}

		public abstract void Start();

		public abstract void Stop();

	}


Bus类

public class Bus  : Car
	{
		public virtual void Bus(object IEngine engine)
		{
			throw new System.NotImplementedException();
		}

		public override void Start()
		{
			throw new System.NotImplementedException();
		}

		public override void Stop()
		{
			throw new System.NotImplementedException();
		}

	}


Limousine 类
public class Limousine  : Car
	{
		public Limousine (object IEngine engine)
		{
		}

		public override void Start()
		{
			throw new System.NotImplementedException();
		}

		public override void Stop()
		{
			throw new System.NotImplementedException();
		}

	}


DieselEngine类(不同引擎的实现)
public class DieselEngine  : IEngine
	{
		public virtual void Start()
		{
			throw new System.NotImplementedException();
		}

		public virtual void Stop()
		{
			throw new System.NotImplementedException();
		}

	}

GasEngine类(不同引擎的实现)
public class GasEngine  : IEngine
	{
		public virtual void Start()
		{
			throw new System.NotImplementedException();
		}

		public virtual void Stop()
		{
			throw new System.NotImplementedException();
		}

	}

  • BRDIGE(桥接)----对象结构型模式研究
            
    
    博客分类: 设计模式研究 企业应用SOAP 
  • 大小: 55.3 KB
  • BRDIGE(桥接)----对象结构型模式研究
            
    
    博客分类: 设计模式研究 企业应用SOAP 
  • 大小: 59 KB
相关标签: 企业应用 SOAP