快速入门Swift中的面向协议的编程

首先,我不会理解为什么面向协议的编程要比继承等更好。 有很多有关该主题的材料,因此您可以发表自己的看法。

我只想与您分享一些我在学习过程中学到的好东西。 我目前正在将我的Objective-C库WANetworkRouting重写为Swift。 顺便说一句,我们在Wasappli的许多应用程序中都使用了该库,您应该尝试一下:通过一些配置行,您可以将应用程序连接到REST Web服务,并在几分钟内将数据缓存到CoreData。

我可能一直在说:我只是将我的代码翻译成Swift,但我想潜入该语言提供的新思维方式。 在过去的8年中,成为Objective-C开发人员使我的习惯变得异常激动。

在Swift中,我最喜欢的事情之一就是如何使用协议为类添加行为。 除了使用继承,您还可以摆脱任何层次结构并放宽行为堆栈。 您还可以精确地决定采用哪种行为,而不必在某个时候吃一堆意大利面。 这样做还鼓励您编写更可测试的代码👍

让我们深入研究代码:WANetworkRouting的功能之一就是能够执行GET myObject之类的功能,而无需知道API上的路由。

在OC库中,我有一个名为WANetworkRouter的组件(很明显),它注册WANetworkRoute,它具有一些属性,例如pathPattern (例如: pathPattern shelves/:itemID ), httpMethodPOSTGET ,…)和对象类。 这主要是受RestKit和一种方便的配置方式(一劳永逸地配置所有库,以使内容分离)的启发。

例如,您可能正在编写此

然后,通过调用此方法,路由器将针对您的API构建路径。