显示列表

意图
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

就拿坦克来说,坦克有很多个部分组成,比如:轮子、引擎、外壳等等。把每一部分都用一个类表示,坦克的每种操作都需要各个部分共同工作。这样就可以把坦克看成是一个复杂的系统,而里的部件类就是它的子系统。在客户程序中只要调用坦克的操作就可以实现我们要的功能,很好的把复杂的东西包装起来,也减少了客户程序对内部子类的耦合。这样当复杂内部发生变化而不用修改客户程序。

Facade模式的优点
隐藏子系统的复杂性,简单化客户程序的使用。

internal class Wheel()
{
    // 定义轮子的方法和属性等。
}

internal class Engine()
{
    // 定义引擎的方法和属性等。
}

public class TankFacade
{
    Wheel wheel = new Wheel();
    Engine engine = new Engine();

    public void Start()
    {
        // 坦克启动时,轮子、引擎要作些什么。
    }

    public void Stop()
    {
        // 坦克停止时,轮子、引擎要作些什么。
    }

    public void Run()
    {
        // 坦克跑动时,轮子、引擎要作些什么。
    }

    public void Shot()
    {
        // 坦克射击时,轮子、引擎要作些什么。
    }
}

返回摘要 | 分类(C#/CSharp) | 访问(93) | 编辑