201802151313->深入浅出设计模式:c#桥模式
2018-02-15 13:14
363 查看
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _006桥模式
{
/*----------------------------------------各种桥组件----------------------------------------*/
public interface PhoneScreen
{
void SetScreen();
}
public interface PhoneBattery
{
void SetBattery();
}
/*----------------------------------------各种桥组件----------------------------------------*/
/*----------------------------------------手机基类----------------------------------------*/
public class Phone
{
public Phone()
{
}
public Phone(PhoneBattery battery, PhoneScreen screen)
{
this.Screen = screen;
this.Battery = battery;
}
public PhoneScreen Screen;
public PhoneBattery Battery;
public void ShowComponent()
{
Screen.SetScreen();
Battery.SetBattery();
}
}
/*----------------------------------------手机基类----------------------------------------*/
/*----------------------------------------实体组件----------------------------------------*/
public class HTCScreen : PhoneScreen
{
public void SetScreen()
{
Console.WriteLine("组装上htc屏幕...");
}
}
public class HTCBattery : PhoneBattery
{
public void SetBattery()
{
Console.WriteLine("组装上htc电池...");
}
}
public class IphoneBattery : PhoneBattery
{
public void SetBattery()
{
Console.WriteLine("组装上苹果电池...");
}
}
/*----------------------------------------实体组件----------------------------------------*/
/*----------------------------------------guochan手机----------------------------------------*/
public class GuoChanPhone : Phone
{
public GuoChanPhone(PhoneBattery battery)
{
Battery = battery;
Screen = new HTCScreen();
}
public GuoChanPhone(PhoneBattery battery, PhoneScreen screen) : base(battery, screen)
{
}
}
internal class Program
{
private static void Main(string[] args)
{
HTCBattery battery = new HTCBattery();
HTCScreen screen = new HTCScreen();
Phone Htc = new Phone(battery, screen);
Htc.ShowComponent();
IphoneBattery ibattery = new IphoneBattery();
GuoChanPhone phone = new GuoChanPhone(ibattery);
phone.ShowComponent();
/*
* 桥模式 : 外部传入需要构造的子类对象组建目标对象
*
* 在使用桥模式和组件模式时需要取舍,如果是着手开发则首选组件模式,如果是接手开发则首选桥模式
*
*/
Console.ReadKey();
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _006桥模式
{
/*----------------------------------------各种桥组件----------------------------------------*/
public interface PhoneScreen
{
void SetScreen();
}
public interface PhoneBattery
{
void SetBattery();
}
/*----------------------------------------各种桥组件----------------------------------------*/
/*----------------------------------------手机基类----------------------------------------*/
public class Phone
{
public Phone()
{
}
public Phone(PhoneBattery battery, PhoneScreen screen)
{
this.Screen = screen;
this.Battery = battery;
}
public PhoneScreen Screen;
public PhoneBattery Battery;
public void ShowComponent()
{
Screen.SetScreen();
Battery.SetBattery();
}
}
/*----------------------------------------手机基类----------------------------------------*/
/*----------------------------------------实体组件----------------------------------------*/
public class HTCScreen : PhoneScreen
{
public void SetScreen()
{
Console.WriteLine("组装上htc屏幕...");
}
}
public class HTCBattery : PhoneBattery
{
public void SetBattery()
{
Console.WriteLine("组装上htc电池...");
}
}
public class IphoneBattery : PhoneBattery
{
public void SetBattery()
{
Console.WriteLine("组装上苹果电池...");
}
}
/*----------------------------------------实体组件----------------------------------------*/
/*----------------------------------------guochan手机----------------------------------------*/
public class GuoChanPhone : Phone
{
public GuoChanPhone(PhoneBattery battery)
{
Battery = battery;
Screen = new HTCScreen();
}
public GuoChanPhone(PhoneBattery battery, PhoneScreen screen) : base(battery, screen)
{
}
}
internal class Program
{
private static void Main(string[] args)
{
HTCBattery battery = new HTCBattery();
HTCScreen screen = new HTCScreen();
Phone Htc = new Phone(battery, screen);
Htc.ShowComponent();
IphoneBattery ibattery = new IphoneBattery();
GuoChanPhone phone = new GuoChanPhone(ibattery);
phone.ShowComponent();
/*
* 桥模式 : 外部传入需要构造的子类对象组建目标对象
*
* 在使用桥模式和组件模式时需要取舍,如果是着手开发则首选组件模式,如果是接手开发则首选桥模式
*
*/
Console.ReadKey();
}
}
}
相关文章推荐
- 201802141601->深入浅出设计模式:c#原型模式
- 201802282138->深入浅出设计模式:c#访问者模式
- 201802170025->深入浅出设计模式:c#组合模式
- 201802272223->深入浅出设计模式:c#状态模式
- 201802140000->深入浅出设计模式:c#高并发下单例模式
- 201802272238->深入浅出设计模式:c#模板模式
- 201802191230->深入浅出设计模式:c#代理模式
- 201802181505->深入浅出设计模式:c#装饰者模式
- 201802181721->深入浅出设计模式:c#享元模式
- 201802272130->深入浅出设计模式:c#观察者模式
- 201802141508->深入浅出设计模式:c#创建者模式
- 201802191355->深入浅出设计模式:c#迭代器模式
- 201802121524->深入浅出设计模式:c#简单工厂模式
- 201802181537->深入浅出设计模式:c#外观模式
- 201802191355->深入浅出设计模式:c#解析器模式
- 201802262211->深入浅出设计模式:c#备忘录模式
- 201802132228->深入浅出设计模式:c#抽象工厂模式
- 201802151200->深入浅出设计模式:c#适配器模式
- <译>C#使用设计模式和软件设计原则构建应用程序 PartIII
- 深入浅出学习设计模式(C#实现)-适配器模式