static void Main(string[] args)
        {
            /// Видео https://youtu.be/6mJXV9m_cmQ
            Computer iMac = new Computer();

            SoundCard apollo = new SoundCard();

            Thunderbolt2Cable tb2Cable = new Thunderbolt2Cable();

            apollo.Thunderbolt2 = tb2Cable.In;
            // iMac.Thunderbolt3 = tb2Cable.Out; // Ошибка. Несоответствие интерфейсов

            Thunderbolt2PortToThunderbolt3Port tb2toTb3Cable = new Thunderbolt2PortToThunderbolt3Port();

            tb2toTb3Cable.Thunderbolt2 = tb2Cable.Out;
            iMac.Thunderbolt3          = tb2toTb3Cable.Thunderbolt3;


            apollo.Thunderbolt2.Data.Signal = "++++";
            Console.WriteLine($"apollo.Signal: {apollo.Thunderbolt2.Data.Signal}");
            Console.WriteLine($"iMac.Signal: {iMac.Thunderbolt3.Data.Signal}");

            iMac.Thunderbolt3.Data.Signal = "----";
            Console.WriteLine($"iMac.Signal: {iMac.Thunderbolt3.Data.Signal}");
            Console.WriteLine($"apollo.Signal: {apollo.Thunderbolt2.Data.Signal}");
        }
Exemple #2
0
        static void Main(string[] args)
        {
            //// Было
            //Computer iMac = new Computer();
            //SoundCard apollo = new SoundCard();

            //Thunderbolt2Cable tb2Cable = new Thunderbolt2Cable();
            //apollo.Thunderbolt2 = tb2Cable.In;
            //// iMac.Thunderbolt3 = tb2Cable.Out; // Ошибка. Несоответствие интерфейсов
            ////Thunderbolt2PortToThunderbolt3Port tb2toTb3Cable = new Thunderbolt2PortToThunderbolt3Port();

            ////tb2toTb3Cable.Thunderbolt2 = tb2Cable.Out;
            ////iMac.Thunderbolt3 = tb2toTb3Cable.Thunderbolt3;

            //// Стало v 1.1
            //Computer iMac = new Computer();
            //AdapterSoundCardToComputer apolloX = new AdapterSoundCardToComputer();

            //Thunderbolt3Cable tb3Cable = new Thunderbolt3Cable();
            //apolloX.Thunderbolt3 = tb3Cable.In;
            //iMac.Thunderbolt3 = tb3Cable.Out; // Ошибки нет. Интерфейсы подходят

            //apolloX.Thunderbolt3.Data.Signal = "++++";
            //Console.WriteLine($"apolloX.Signal: {apolloX.Thunderbolt3.Data.Signal}");
            //Console.WriteLine($"iMac.Signal: {iMac.Thunderbolt3.Data.Signal}");

            //iMac.Thunderbolt3.Data.Signal = "----";
            //Console.WriteLine($"iMac.Signal: {iMac.Thunderbolt3.Data.Signal}");
            //Console.WriteLine($"apolloX.Signal: {apolloX.Thunderbolt3.Data.Signal}");

            // Стало v 1.2
            SoundCard apollo = new SoundCard();
            AdapterComputerToSoundCard iMacPro = new AdapterComputerToSoundCard();

            Thunderbolt2Cable tb2Cable = new Thunderbolt2Cable();

            apollo.Thunderbolt2  = tb2Cable.In;
            iMacPro.Thunderbolt2 = tb2Cable.Out; // Ошибки нет. Интерфейсы подходят

            apollo.Thunderbolt2.Data.Signal = "++++";
            Console.WriteLine($"apolloX.Signal: {apollo.Thunderbolt2.Data.Signal}");
            Console.WriteLine($"iMac.Signal: {iMacPro.Thunderbolt2.Data.Signal}");

            iMacPro.Thunderbolt2.Data.Signal = "----";
            Console.WriteLine($"iMac.Signal: {iMacPro.Thunderbolt2.Data.Signal}");
            Console.WriteLine($"apolloX.Signal: {apollo.Thunderbolt2.Data.Signal}");
        }