Example #1
0
        static void _Main(string[] args)
        {
            IBeast  dragon        = new SimpleDragon();
            Bogatyr illiaMuromets = new Bogatyr();

            illiaMuromets.KillBeast(dragon);
            if (!dragon.HeadIsPresent)
            {
                Console.WriteLine("Перший дракон обезголовлений і мертвий.");
            }

            // на місце мертворо дракона приходить новий
            // і цього разу в нього не одна, а 3 голови
            MultiheadedDragon resurrectedDragon = new MultiheadedDragon(3);

            // illiaMuromets.KillBeast(resurrectedDragon); - не вийшло зразу подолати нового дракона(

            // але прийшов адаптер і напоумив богатиря
            NewBeastAsOld dragonIsTheSame = new NewBeastAsOld(resurrectedDragon);

            illiaMuromets.KillBeast(dragonIsTheSame);

            if (!dragonIsTheSame.HeadIsPresent)
            {
                Console.WriteLine("Другий дракон обезголовлений і мертвий.");
            }

            Console.ReadLine();
        }
Example #2
0
 public NewBeastAsOld(MultiheadedDragon m)
 {
     multiheadedDragon = m;
 }