FRDModuleManager 提供了一個統一的接口,讓各模塊知曉應用的生命週期。在 AppDelegate 中留下鉤子,在特定的生命週期調用模塊的對應方法。這樣將使得 AppDelegate 更簡單。對於應用生命週期的使用也更清晰。 evernotecid://6F55E44D-BBC1-43F1-9310-4138A0D19764/appyinxiangcom/11652118/ENResource/p18418 git
其實第2個缺點是能夠避免的,咱們能夠調整plist文件中的類的順序,來實現模塊的調用順序。咱們拿FRDModuleManager的demo中的plist文件來驗證一下。github
JSDecoupledAppDelegate是由JSBadgeView的做者開發的一款輕量級的AppDelegate解耦工具。它將AppDelegate各個功能點獨立出來,並經過代理的方式將控制權下發。實現原理,利用Objective-C的消息轉發機制,轉發AppDelegate的各個方法來實現AppDelegate的解耦的app
JSDecoupledAppDelegate的缺點很是明顯:使用它必須廢棄原生的AppDelegate,所以咱們不能經過((AppDelegate *)[UIApplication sharedApplication].delegate).window
來獲取window,以及window的rootViewController。工具
不須要添加任何三方庫,咱們就能夠給AppDelegate
添加不少方法,而且能輕鬆控制方法的執行順序3d
添加新的屬性比較繁瑣,只能經過runtime
或者BlocksKit等三方庫實現代理
參考: DelegateDietDemo日誌