vlambda博客
学习文章列表

C#设计模式——外观(门面)模式

This browser does not support music or audio playback. Please play it in WeChat or another browser.
C#设计模式——外观(门面)模式


我希望未来有一天,因为我的代码,让这个世界上的一些人生活的更便利
感觉到一点点幸福或愉悦。不管这些人多还是少。

前言


 外观模式是一种结构性模式,此模式比较容易理解以及实现。简单的来说就是封装功能。为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度。

但此模式有个缺点就是不符合开闭原则,那何为开闭原则呢,一句话:开放扩展,关闭修改。

C#设计模式——外观(门面)模式
C#设计模式——外观(门面)模式

方案思路


举个小例子:在买手机的时候,会有好几种参考供选择,如果不是很熟悉的朋友就不太懂了,这是就需要一个销售人员,就是我们的外观类来封装一下啊,直接调用一个方法就可以把买手机复杂的过程交给销售人员来做啦。

C#设计模式——外观(门面)模式
C#设计模式——外观(门面)模式

Code




以下代码经过测试,可直接在项目中使用

public class Facade : MonoBehaviour {

void Start () {

        FacadePatterns PhoneFacade = new FacadePatterns();

        PhoneFacade.BuyHuaWei();

        PhoneFacade.BuyApplePhone();

        PhoneFacade.BuyAllPhone();

}

}


/// <summary>

/// 外观模式管理器

/// </summary>

public class FacadePatterns

{

    private IPhone apple;

    private IPhone huaWei;

    public FacadePatterns()

    {

        apple = new Apple();

        huaWei = new HuaWei();

    }


    public void BuyApplePhone()

    {

        apple.buyPhone();

    }

    public void BuyHuaWei()

    {

        huaWei.buyPhone();

    }

    public void BuyAllPhone()

    {

        apple.buyPhone();

        huaWei.buyPhone();

    }

}


public interface IPhone

{

    void buyPhone();

}

public class Apple : IPhone

{

    public void buyPhone()

    {

        Debug.Log("购买苹果手机");

    }

}

public class HuaWei : IPhone

{

    public void buyPhone()

    {

        Debug.Log("购买华为手机");

    }

}







END




感谢阅读


你知道的越多,你不知道的越多

我是EAST

一个靠互联网苟且偷生的程序员

咱们下期见!





扫描二维码关注我吧