《C#设计模式》【外观模式】

一:案例场景

生活中,比如笔记本是一个整体,看似是一件东西,实际上只是将主机和显示器组装在一起而已,对外提供一个电源按钮,当按下电源按钮的时候,启动了主机和显示器,这里的这个电源按钮就差不多是外观模式,对外只提供了一个电源按钮。

二:概念定义  

外观模式(Facade)的定义:为子系统中的一组接口提供一个一致的界面,用来访问子系统中的一群接口。

三:案例解析

某文件系统管理,包括文件的读取,加密,解密,用外观模式实现该系统功能。【

具体实现如下:

    //加密类
    public class EncrypHelper
    {
        public void EncrypImg()
        {
            
        }
        public void EncrypStr()
        {
            
        }
    }
    //解密类
    public class DecrypHelper
    {
        public void DecrypImg()
        {

        }
        public void DecrypStr()
        {

        }
    }

 //外观模式,对外接口

//定义外观类,外观模式对外接口类
    public class TestFacade
    {
        EncrypHelper ehp;
        DecrypHelper dhp;
        public TestFacade()
        {
            ehp = new EncrypHelper();
            dhp = new  DecrypHelper();
        }
        //处理图片
        public void HandleImg()
        {
            ehp.EncrypImg();
            dhp.DecrypImg();
        }
        //处理文本
        public void HandleStr()
        {
            ehp.EncrypStr();
            dhp.DecrypStr();
        }

    }

//客户端调用测试

    public class RunFacade
    {
        public RunFacade()
        {
            TestFacade tfa = new TestFacade();
            tfa.HandleImg();
            tfa.HandleStr();
        }
    }

四:使用场景

在以下情况下可以考虑使用外观模式:

  • 外一个复杂的子系统提供一个简单的接口
  • 提供子系统的独立性
  • 在层次化结构中,可以使用外观模式定义系统中每一层的入口,其中三层架构就是这样的一个例子

五: 外观模式的优缺点 

优点:

  1. 外观模式对客户屏蔽了子系统组件,从而简化了接口,减少了客户处理的对象数目并使子系统的使用更加简单。
  2. 外观模式实现了子系统与客户之间的松耦合关系,而子系统内部的功能组件是紧耦合的。松耦合使得子系统的组件变化不会影响到它的客户。

缺点:

  1. 如果增加新的子系统可能需要修改外观类或客户端的源代码,这样就违背了”开——闭原则“(不过这点也是不可避免)。

六、 总结

外观模式,为子系统的一组接口提供一个统一的接口,该模式定义了一个高层接口,这一个高层接口使的子系统更加容易使用。并且外观模式可以解决层结构分离、降低系统耦合度和为新旧系统交互提供接口功能。 

  1.  本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。
  2. 个人V:zp2013822
  3. 交流QQ :1787024563 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值