zoukankan      html  css  js  c++  java
  • Swift中的Facade设计模式与代码示例

    正如您可以想象的那样,在创建Swift应用程序时,代码可重用性是我们的首要任务之一。为了尽可能多地重用代码,我们通过利用与Swift兼容的各种设计模式,尽可能地集中模块化代码库。在这个Swift教程中,我们将看一下Facade Design Pattern。让我们理解它是什么,它采用什么样的架构方法,让我们看一下在Swift中实现它的代码片段。


    门面设计模式

    Facade模式(也拼写为façade)是面向对象编程中常用的软件设计模式。类似于架构中的外观,外观是一个对象,用作面向更复杂的底层或结构代码的前向界面。您可以在维基百科上阅读官方通用Facade定义

    让我们考虑一个具体的例子,对所有iOS开发者来说都很熟悉。在开发移动应用程序时,几乎每次我们使用URL通信从远程服务器加载/存储资源。在我们的示例中,最常见的方案是Firebase实例或WooCommerce / WordPress后端。

    如果您曾创建过一个简单的APIClient / APIManager类,那么您已经使用了Facade Design Pattern。创建一个封装网络的简单APIClient / APIManager对象,确实是Alamofire或URLSession功能的外观。通过这种方式,您可以创建一个Facade,它具有简单而方便的API,可用于相当复杂的URL请求相关逻辑。

    门面设计模式示例

    如果您曾经使用过KeyChain,那么您就知道Apple的API非常繁琐。事实上,几乎没有人使用这些API。我们所知道的大多数iOS开发人员通常使用第三方开源Swift项目来包装KeyChain的逻辑,隐藏所有这些可怕的接口这些Swift库本身就是外观。

    对于一个简单的外观示例,让我们为Keychain中的存储值构建一个简单的外观对象:

    class KeychainFacade {
        
        func save(value:String,forKey key:String)throws {
            //保存到Keychain逻辑
        }
        
        func readValue(forKey key:String) - > throws String {
            //从Keychain逻辑中读取值
        }
    }

    正如您所看到的,我们还没有添加实现,因为这篇文章与Keychain无关,但您应该明白这一点。

    结论

    立面设计模式在业界广泛传播,很有可能你已经习惯了,没有意识到这一点。它用于隐藏实现细节和抽象接口,以便消费者可以处理较低级别的细节。虽然它增加了额外的抽象层,但外观设计模式显着提高了代码的可读性和体系结构。

    如果你喜欢这篇文章,请考虑分享它以帮助我们传播这个词。快乐的编码!

  • 相关阅读:
    VueJS
    Nacos 微服务注册发现配置中心
    精简自己20%的代码(异常的处理)
    lazarus 检测内存泄漏
    winsocket练习一 阻塞与select模型
    js原型链解析
    块元素 父子外边距现象
    行高的继承
    行内元素(文字)垂直平居中
    本地文件播放
  • 原文地址:https://www.cnblogs.com/zhanggen/p/10863010.html
Copyright © 2011-2022 走看看