Design patterns V : Facade Pattern
/*
Author: Jiangong SUN
*/
Facade Pattern (外观模式) provides a unique inte易做图ce to a set of methods of different subsystems in an application. It's widely used in application development.
It's a structural pattern.
Now let's see the implementation in CSharp.
Firstly, create subsystems and their methods.
class SubSytemOne
{
public void MethodOne()
{
Console.WriteLine("SubSystemOne Method");
}
}
class SubSytemTwo
{
public void MethodTwo()
{
Console.WriteLine("SubSystemTwo Method");
}
}
class SubSytemThree
{
public void MethodThree()
{
Console.WriteLine("SubSystemThree Method");
}
}
class SubSytemFour
{
public void MethodFour()
{
Console.WriteLine("SubSystemThree Method");
}
}
Create Facade class and its methods as an inte易做图ce to subsystems' methods' aggregation.
class Facade
{
private readonly SubSytemOne _one;
private readonly SubSytemTwo _two;
private readonly SubSytemThree _three;
private readonly SubSytemFour _four;
public Facade()
{
_one = new SubSytemOne();
_two = new SubSytemTwo();
_three = new SubSytemThree();
_four = new SubSytemFour();
}
public void MethodA()
{
Console.WriteLine("MethodA():");
_one.MethodOne();
_three.MethodThree();
}
public void MethodB()
{
Console.WriteLine("MethodB():");
_two.MethodTwo();
_four.MethodFour();
}
public void MethodC()
{
Console.WriteLine("MethodC():");
_one.MethodOne();
_two.MethodTwo();
_four.MethodFour();
}
}
The clients can call facade's methods to satisfy its requirements.
var facade = new Facade();
facade.MethodA();
facade.MethodB();
facade.MethodC();
So this is the implementation of facade pattern. I hope you enjoy this article. Enjoy coding!
补充:软件开发 , C# ,