Adapter Pattern Demo

image_pdfimage_print
   
 
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());
    }
}