精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

ReactorKit:iOS單向數據流架構

責任編輯:editor004

作者:謝麗

2017-05-11 11:43:00

摘自:INFOQ

ReactorKit是一個面向響應式單向Swift應用程序架構的框架,結合了Flux和響應式編程。在ReactorKit框架中,用戶動作和視圖狀態都是通過可觀測的流傳遞給每一層。這些流是單向的,因此,視圖只能發出動作,而響應者只能發出狀態,如下圖所示:

ReactorKit是一個面向響應式單向Swift應用程序架構的框架,結合了Flux和響應式編程。其中,Flux是Facebook用來構建客戶端Web應用程序的應用架構。它借助單向數據流完善了React的可組合視圖組件。它更多的是一種模式,而不是一種傳統的框架。

在ReactorKit框架中,用戶動作和視圖狀態都是通過可觀測的流傳遞給每一層。這些流是單向的,因此,視圖只能發出動作,而響應者只能發出狀態,如下圖所示:

  按照設計,ReactorKit旨在實現以下三個目標:

可測試性:ReactorKit的第一個目標是將業務邏輯從視圖分離,響應者不依賴于任何視圖,可單獨測試; 從小做起:ReactorKit不要求整個應用程序遵循統一的架構,開發人員可以只在一個具體的視圖中使用它,在已有的項目中使用ReactorKit也無需重寫任何東西; 減少輸入:對于簡單的東西,ReactorKit注重避免復雜的代碼,與其他架構相比,它需要的代碼更少。

ReactorKit主要包含以下三個層次:

視圖:視圖展示數據。一個視圖控制器和一個單元格被視為一個視圖。視圖將用戶輸入綁定到動作流,將視圖狀態綁定到每個UI組件。視圖層不包含業務邏輯。視圖只負責定義如何映射動作流和狀態流。 響應者:響應者是一個獨立的層,負責管理視圖狀態。響應者最重要的作用是從視圖分離出控制流。每個視圖都有相應的響應者,并將邏輯處理委托給響應者。響應者不依賴視圖,很容易測試。 服務:ReactorKit有一個特殊的、稱為服務的層。服務層實現具體的業務邏輯。響應者介于視圖和服務之間,管理事件流。當響應者收到來自視圖的用戶動作,它就會調用服務邏輯。服務會發送一個網絡請求,并將響應返回給響應者。然后,響應者會使用服務響應創建一個變種流。

此外,一個響應者可以和多個服務通信。ServiceProvider為響應者提供了到每個服務的引用。服務提供者在整個應用程序生命ZZ周期內只創建一次,并傳遞給第一個響應者。第一個響應者將同一個服務提供者實例的引用傳遞給子響應者。

ReactorKit的GitHub頁面上列出了以下幾個示例:

Counter:最簡單、最基本的ReactorKit示例; RxTodo: 使用ReactorKit的iOS Todo應用; Cleverbot: 使用Cleverbot和ReactorKit的iOS Messaging應用; Drrrible: 使用ReactorKit的Dribbble for iOS(應用商店)。

ReactorKit遵循MIT許可協議。感興趣的讀者可以下載試用及加入ReactorKit社區。

感謝徐川對本文的審校。

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 武鸣县| 正宁县| 淄博市| 蓬安县| 喀喇沁旗| 四川省| 蕉岭县| 云安县| 阿拉善右旗| 宜宾市| 武陟县| 磴口县| 会泽县| 辉县市| 旅游| 芦溪县| 兰考县| 清远市| 平利县| 维西| 石家庄市| 安溪县| 黄浦区| 婺源县| 邵武市| 博兴县| 抚松县| 太谷县| 聂拉木县| 姚安县| 吴江市| 绥江县| 莲花县| 昌都县| 苍南县| 德格县| 盐源县| 宝兴县| 蓝山县| 开江县| 临澧县|