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