Csharp/C Sharp/Design Patterns/Adapter Pattern — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Текущая версия на 11:38, 26 мая 2010

Adapter Pattern Demo

 
using System;
public sealed class ForeignExchange {
    public string UStoUK() {
        return "USD to GBP is...";
    }
    public string UStoCAN() {
        return "USD to CND is...";
    }
    public ForeignExchange() { ;}
}
public class AdapterWrapper {
    private Adapter adapt;
    public string AdapterWrapper_USD_GBP() {
        return this.adapt.USD_GBP();
    }
    public string AdapterWrapper_USD_CND() {
        return this.adapt.USD_CND();
    }
    public string AdapterWrapper_USD_AUD() {
        return this.adapt.USD_AUD();
    }
    public AdapterWrapper() {
        adapt = new Adapter();
    }
}

public class Adapter {
    private ForeignExchange sourceCode;
    public string USD_GBP() {
        return "Conversion " + this.sourceCode.UStoUK();
    }
    public string USD_CND() {
        return "Conversion " + this.sourceCode.UStoCAN();
    }
    public string USD_AUD() {
        return "Conversion USD to AUD is...";
    }
    public string USD_JPY() {
        return "Conversion USD to JNY is...";
    }
    public Adapter() {
        sourceCode = new ForeignExchange();
    }
}
public class Client {
    static void Main(string[] args) {
        AdapterWrapper afx = new AdapterWrapper();
        Console.WriteLine(afx.AdapterWrapper_USD_GBP());
        Console.WriteLine(afx.AdapterWrapper_USD_CND());
        Console.WriteLine(afx.AdapterWrapper_USD_AUD());
    }
}