Design patterns V : Facade Pattern

来源:互联网 发布:cms什么意思 编辑:程序博客网 时间:2024/05/30 04:13

/*

Author: Jiangong SUN

*/


Facade Pattern (外观模式) provides a unique interface 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 interface 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!



references:

http://www.dofactory.com/Patterns/PatternFacade.aspx#_self1

http://zh.wikipedia.org/wiki/%E5%A4%96%E8%A7%80%E6%A8%A1%E5%BC%8F

原创粉丝点击