PatternsCSharpExtraAddons/Patterns/Pattern_1-Адаптер(Adapter)/Program.cs
Dvurechensky a4cd4b4ced 1.0
Main
2024-10-05 09:30:14 +03:00

59 lines
1.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* СТРУКТУРНЫЕ ПАТТЕРНЫ
*
* Глава_12: Адаптер (Adapter)
*
* - преобразует интерфейс одного класса в интерфейс другого, который
* ожидают клиенты. Адаптер делает возможной совместную работу
* классов с несовместимыми интерфейсами
*/
class Motorcycle { }
/// <summary>
/// Что адаптируем
/// </summary>
class Voskhod : Motorcycle
{
public void Sound() => Console.WriteLine("DRDRDR");
}
/// <summary>
/// Цель на которую нужно ориентироваться при адаптации
/// </summary>
interface Isport
{
void MakeNoise();
}
/// <summary>
/// Пример готового объекта aдаптированного под цель
/// </summary>
class Honda : Motorcycle, Isport
{
public void MakeNoise() => Console.WriteLine("hooondaaa");
}
/// <summary>
/// Адаптер
/// Адаптирует простой класс под цель
/// </summary>
class TuningVoskhod : Isport
{
Voskhod moto;
public TuningVoskhod(Voskhod moto) => this.moto = moto;
public void MakeNoise()
{
Console.WriteLine("trsh");
moto.Sound();
}
}
class Program
{
public static void Main(string[] args)
{
var tun = new TuningVoskhod(new Voskhod());
tun.MakeNoise();
}
}