public void TestInitialize()
        {
            _frenchTranslator        = new FrenchTranslator();
            _frenchTranslatorAdaptor = new FrenchTranslatorAdaptor(_frenchTranslator);

            _japaneseTranslator        = new JapaneseTranslator();
            _japaneseTranslatorAdaptor = new JapaneseTranslatorAdaptor(_japaneseTranslator);

            _tourist = new Tourist(_frenchTranslatorAdaptor);
        }
    private static void Main(string[] args)
    {
        // Brian and freddie know only how to say Greetings. But when they tour
        // internationally, they will need a translator so when they say Greetings()
        // the appropriate non-English response comes out of their mouth.
        // they need to make use of the adapter pattern:
        // When in Japan:
        ITarget    translator     = new JapaneseTranslator(new JapaneseSpeaker());
        EnglishMan freddieMercury = new EnglishMan(translator);

        // Freddie greets the Tokyo crowd, though he doesn't know a word of Japanese
        Console.WriteLine(freddieMercury.Greetings());     //  "Konichiwa, hisashiburi!"
        // when in France:
        ITarget    translator2 = new FrenchTranslator(new FrenchSpeaker());
        EnglishMan brianMay    = new EnglishMan(translator2);

        // Brian greets the crowd in Paris, though he doesn't know a word in French
        Console.WriteLine(brianMay.Greetings());     // "Bonjour!"
        // alternatively, the translators can also do the greeting:
        Console.WriteLine(translator.Greetings());   //  "Konichiwa, hisashiburi!"
        Console.WriteLine(translator2.Greetings());  // "Bonjour!"
    }
 public FrenchTranslatorAdaptor(FrenchTranslator frenchTranslator)
 {
     this._frenchTranslator = frenchTranslator;
 }