适配器模式
将一个类的接口转化成客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些类在一起工作。
class Target{public void Request(){Console.WriteLine("普通请求!");}}class Adaptee{public void SpecificRequest(){Console.WriteLine("特殊需求!");}}class Adapter:Target{private Adaptee adaptee=new Adaptee();public void Request(){adaptee.SpecificRequest();}}//consoleTarget target=new Adapter();//表面上调用Request实际调用SpecificRequest.target.Request();
桥接模式
//手机软件interface HandsetSoft{public void Run();}//手机游戏class HandsetGame:HandsetSoft{public void Run(){Console.WriteLine("运行手机游戏");}}//手机通讯录class HandsetAddressList:HandsetSoft{public void Run(){Console.WriteLine("运行手机通讯录");}}//手机品牌interface HandsetBrand{protected HandsetSoft soft;//设置手机软件public void setHandsetSoft(HandsetSoft soft){this.soft=soft;}//运行public void Run();}//具体的手机品牌class HandsetBrandN:HandsetBrand{public void Run(){soft.Run();}}//以上代码实现了对扩展开放的原则,如果新增加手机软件或者手机品牌都只需要增加相应的类即可,//不需要修改原有代码.
桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立变化。
interface Implementor{public void Operation();}class ConcreteImplementorA:Implementor{public void Operation(){Console.WriteLine("具体实现A的方法执行");}}class ConcreteImplementorB:Implementor{public void Operation(){Console.WriteLine("具体实现B的方法执行");}}class Abstraction{protected Implementor implementor;public void SetImplementor(Implementor implementor){this.implementor=implementor;}public void Operation(){implementor.Operation();}}class RefinedAbstraction:Abstraction{public void Operation(){implementor.Operation();}}//以上代码实现了:实现系统可能有多角度分类,每一种分类都有可能变化,//那么就把这种多角度分离出来让它们独立变化,减少它们的耦合.
组合模式
组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。
