namespace _07_Bridge
{
public abstract class Tank
{
public abstract void Run();
public abstract void Shot();
public abstract void Stop();
}
public class T50 : Tank
{
public override void Run()
{
//...T50...
}
public override void Shot()
{
//...T50...
}
public override void Stop()
{
//...T50...
}
}
public class PCT50 : T50
{
}
public class MobileT50 : T50
{
}
public class T75 : Tank
{
public override void Run()
{
//...T75...
}
public override void Shot()
{
//...T75...
}
public override void Stop()
{
//...T75...
}
}
public class PCT75 : T50
{
}
public class MobileT75 : T50
{
}
public class T90 : Tank
{
public override void Run()
{
//...T90...
}
public override void Shot()
{
//...T90...
}
public override void Stop()
{
//...T90...
}
}
public class PCT90 : T50
{
}
public class MobileT90 : T50
{
}
}
namespace _07_Bridge_2
{
public struct Point
{
int x;
int y;
}
public abstract class Tank
{
protected TankPlatfromImplementation tankImpl;
public Tank(TankPlatfromImplementation tankImpl)
{
this.tankImpl = this.tankImpl;
}
public TankPlatfromImplementation TankImpl
{
get { return tankImpl; }
set { this.tankImpl = value; }
}
public abstract void Run();
public abstract void Shot();
public abstract void Stop();
}
public class T50 : Tank
{
public T50(TankPlatfromImplementation tankImpl) : base(tankImpl)
{
}
public override void Run()
{
//...T50...
}
public override void Shot()
{
tankImpl.DoShot();
}
public override void Stop()
{
//...T50...
}
}
//public class PCT50 : T50
//{
//}
//public class MobileT50 : T50
//{
//}
public class T75 : Tank
{
public T75(TankPlatfromImplementation tankImpl) : base(tankImpl)
{
}
public override void Run()
{
//...T75...
}
public override void Shot()
{
tankImpl.DoShot();
}
public override void Stop()
{
//...T75...
}
}
//public class PCT75 : T50
//{
//}
//public class MobileT75 : T50
//{
//}
public class T90 : Tank
{
public T90(TankPlatfromImplementation tankImpl) : base(tankImpl)
{
}
public override void Run()
{
//...T90...
}
public override void Shot()
{
tankImpl.DoShot();
}
public override void Stop()
{
//...T90...
}
}
//public class PCT90 : T50
//{
//}
//public class MobileT90 : T50
//{
//}
public abstract class TankPlatfromImplementation
{
public abstract void MoveTankTo(Point pt);
public abstract void DrawTank();
public abstract void DoShot();
}
public class PCTankImplementation : TankPlatfromImplementation
{
public override void DoShot()
{
}
public override void DrawTank()
{
}
public override void MoveTankTo(Point pt)
{
}
}
public class MobileTankImplementation : TankPlatfromImplementation
{
public override void DoShot()
{
}
public override void DrawTank()
{
}
public override void MoveTankTo(Point pt)
{
}
}
internal class Program
{
static void Main(string[] args)
{
TankPlatfromImplementation tankImpl = new MobileTankImplementation();
T50 tank = new T50(tankImpl);
}
}
}
namespace _07_Bridge_3
{
public struct Point
{
int x;
int y;
}
public interface Tank
{
void Run();
void Shot();
void Stop();
}
public class T50 : Tank
{
public void Run()
{
//...T50...
}
public void Shot()
{
}
public void Stop()
{
//...T50...
}
}
public class T75 : Tank
{
public void Run()
{
//...T75...
}
public void Shot()
{
}
public void Stop()
{
//...T75...
}
}
public class T90 : Tank
{
public void Run()
{
//...T90...
}
public void Shot()
{
}
public void Stop()
{
//...T90...
}
}
public class PCT50 : Tank, TankPlatfromImplementation
{
public void DoShot()
{
throw new NotImplementedException();
}
public void DrawTank()
{
throw new NotImplementedException();
}
public void MoveTankTo(Point to)
{
throw new NotImplementedException();
}
public void Run()
{
throw new NotImplementedException();
}
public void Shot()
{
throw new NotImplementedException();
}
public void Stop()
{
throw new NotImplementedException();
}
}
public interface TankPlatfromImplementation
{
void MoveTankTo(Point to);
void DrawTank();
void DoShot();
}
public class PCTankImplementation : TankPlatfromImplementation
{
public void DoShot()
{
}
public void DrawTank()
{
}
public void MoveTankTo(Point to)
{
}
}
public class MobileTankImplementation : TankPlatfromImplementation
{
public void DoShot()
{
}
public void DrawTank()
{
}
public void MoveTankTo(Point to)
{
}
}
}
07.桥接模式
于 2022-04-22 13:14:07 首次发布