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

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>
      主站蜘蛛池模板: 金乡县| 大丰市| 武鸣县| 延长县| 江永县| 永吉县| 黔江区| 靖州| 虞城县| 延寿县| 皋兰县| 双牌县| 苏尼特左旗| 汪清县| 富源县| 卢湾区| 云阳县| 宁城县| 通榆县| 全椒县| 宣恩县| 常德市| 保康县| 清新县| 巴东县| 淳安县| 承德市| 绥江县| 洪湖市| 垣曲县| 泾阳县| 安福县| 彰武县| 大冶市| 西盟| 河曲县| 肇源县| 松溪县| 济阳县| 长治市| 鸡泽县|