• 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无关,但您应该明白这一点。

    结论

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

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

  • 相关阅读:
    cookie、localStorage、sessionStorage及三者的区别
    js中的宏任务和微任务
    IDEA工具第二篇:自定义Java注释模板
    JDBC注册驱动的三种方式
    Java POI导出Excel,打开提示“此文件中的某些文本格式可能已经更改......”
    day29 文件的上传和下载 socketserver(并发)
    day 28 黏包 ssh模块 subprocess模块
    day 28 网络基础相关的知识
    day 27 网路编程 面向对象多继承
    day 26 约束、自定义异常、加密hashlib、logging
  • 原文地址:https://www.cnblogs.com/zhanggen/p/10863010.html
Copyright © 2020-2023  润新知