Example #1
0
        public static void Test()
        {
            TV     tv     = new TV();
            Remote remote = new Remote(tv);

            remote.ChannelDown();
            remote.ChannelUp();
            remote.SoundDown();
            remote.SoundUp();
            remote.TogglePower();

            Radio  radio   = new Radio();
            Remote remote2 = new Remote(radio);

            remote2.ChannelDown();
            remote2.ChannelUp();
            remote2.SoundDown();
            remote2.SoundUp();
            remote2.TogglePower();

            SuperRemote remote3 = new SuperRemote(radio);

            remote3.ChannelDown();
            remote3.ChannelUp();
            remote3.SoundDown();
            remote3.SoundUp();
            remote3.TogglePower();
            remote3.Mute();
        }
        public void should_turn_channel_up()
        {
            var currentChannel = _television.CurrentChannel;

            _remote.ChannelUp();

            Assert.AreEqual(++currentChannel, _television.CurrentChannel);
        }
Example #3
0
        /// <summary>
        /// Паттерн "Мост" позволяет изменять реализацию и абстракцию, для чего они размещаются в двух разных иерархиях классов.
        /// Мост — это структурный паттерн, он разделяет бизнес-логику или большой класс на несколько отдельных иерархий, которые потом можно развивать отдельно друг от друга.
        /// Он необходим для избежания порождения большого количества классов.
        /// Различие с паттерном "Стратегия" заключается в том, что "Стратегия" делает акцент на унифицированном использовании альтернативных алгоритмов,
        /// а "Мост" занимается именно разделением абстракции от реализации.
        /// </summary>
        public void DemoBridge()
        {
            var tv            = new Tv();
            var remoteControl = new Remote(tv);

            remoteControl.TogglePower();
            remoteControl.ChannelUp();

            var advancedRemoteControl = new AdvancedRemote(tv);

            advancedRemoteControl.TogglePower();
            advancedRemoteControl.Mute();
        }