外观模式(Facade Pattern)
外观模式在生活中的例子处处都在,代码中也处处在用。它将自己最简洁的面貌展示给客户程序调用,有点金玉其外,“复杂”其中的意思。
下面用汽车启动为例,当我们扣动车钥匙发动车时,汽车内部进行了一系列的操作来发动引擎。
下面用汽车启动为例,当我们扣动车钥匙发动车时,汽车内部进行了一系列的操作来发动引擎。
public class App
{
public static void Main()
{
Car car = new Car();
car.Run();
car.Stop();
Console.ReadLine();
}
}
internal class Enginee
{
public void Open()
{
Console.WriteLine("引擎启动");
}
public void Close()
{
Console.WriteLine("引擎关闭");
}
}
internal class Carburettor
{
public void Open()
{
Console.WriteLine("化油器加油");
}
public void Close()
{
Console.WriteLine("化油器停止加油");
}
}
internal class Firedevice
{
public void Open()
{
Console.WriteLine("起火器点火");
}
public void Close()
{
Console.WriteLine("起火器关闭");
}
}
public class Car
{
Firedevice fire;
Carburettor burettor;
Enginee enginee;
public Car()
{
fire = new Firedevice();
burettor = new Carburettor();
enginee = new Enginee();
}
public void Run()
{
fire.Open();
burettor.Open();
enginee.Open();
//.
fire.Close();
Console.WriteLine("车已启动");
}
public void Stop()
{
burettor.Close();
enginee.Close();
Console.WriteLine("车已停止");
}
}
{
public static void Main()
{
Car car = new Car();
car.Run();
car.Stop();
Console.ReadLine();
}
}
internal class Enginee
{
public void Open()
{
Console.WriteLine("引擎启动");
}
public void Close()
{
Console.WriteLine("引擎关闭");
}
}
internal class Carburettor
{
public void Open()
{
Console.WriteLine("化油器加油");
}
public void Close()
{
Console.WriteLine("化油器停止加油");
}
}
internal class Firedevice
{
public void Open()
{
Console.WriteLine("起火器点火");
}
public void Close()
{
Console.WriteLine("起火器关闭");
}
}
public class Car
{
Firedevice fire;
Carburettor burettor;
Enginee enginee;
public Car()
{
fire = new Firedevice();
burettor = new Carburettor();
enginee = new Enginee();
}
public void Run()
{
fire.Open();
burettor.Open();
enginee.Open();
//.
fire.Close();
Console.WriteLine("车已启动");
}
public void Stop()
{
burettor.Close();
enginee.Close();
Console.WriteLine("车已停止");
}
}