设计模式九(外观模式)

1.外观模式相当于把很多东西动封装在一个类里面,很多操作只提供一个接口,外部只要调用这个接口就能调用这些所有的功能方法,一般情况下我们用在把比较多的繁琐的方法封装到一个类中,通过这个类的某个方法来挨着调用。这样给外面的感觉只是调用了一个方法,其实这个类已经做了很多工作了。(一些资料来自大话设计模式)

外观模式的适用场合

首先在设计阶段的初期,在层与层之间实现分离时候的调用。其次在维护一个大系统的时候,经常我们不能更改老系统的功能代码,我们需要自己编写一个外观类来调用老系统的方法,然后提供一个接口给新系统,这样维护添加一些新功能就比较容易。

 

2.类关系图

 

3.代码展示

 

namespace 外观模式
{
    class Program
    {
        static void Main(string[] args)
        {
            Facade facade = new Facade();

            facade.MethodA();
            facade.MethodB();

            Console.Read();

        }
    }

    class SubSystemOne
    {
        public void MethodOne()
        {
            Console.WriteLine(" 子系统方法一");
        }
    }

    class SubSystemTwo
    {
        public void MethodTwo()
        {
            Console.WriteLine(" 子系统方法二");
        }
    }

    class SubSystemThree
    {
        public void MethodThree()
        {
            Console.WriteLine(" 子系统方法三");
        }
    }

    class SubSystemFour
    {
        public void MethodFour()
        {
            Console.WriteLine(" 子系统方法四");
        }
    }

    class Facade
    {
        SubSystemOne one;
        SubSystemTwo two;
        SubSystemThree three;
        SubSystemFour four;

        public Facade()
        {
            one = new SubSystemOne();
            two = new SubSystemTwo();
            three = new SubSystemThree();
            four = new SubSystemFour();
        }

        public void MethodA()
        {
            Console.WriteLine("\n方法组A() ---- ");
            one.MethodOne();
            two.MethodTwo();
            four.MethodFour();
        }

        public void MethodB()
        {
            Console.WriteLine("\n方法组B() ---- ");
            two.MethodTwo();
            three.MethodThree();
        }
    }
}

 

posted @ 2010-11-28 23:43  yu_liantao  阅读(175)  评论(0)    收藏  举报