1、簡介
軟件開發(fā)有一個原則叫【依賴倒置Dependence Inversion Principle 】
A.高層次的模塊不應(yīng)該依賴于低層次的模塊,他們都應(yīng)該依賴于抽象。
B.抽象不應(yīng)該依賴于具體實現(xiàn),具體實現(xiàn)應(yīng)該依賴于抽象。
Xamarin.Forms在面對無法實現(xiàn)的平臺特有功能時就是使用以上原則設(shè)計一個叫【DependencyService】的功能。DependencyService的目的就是讓PCL共通代碼可以調(diào)用與平臺相關(guān)的功能,它使Xamarin.Forms能像原生應(yīng)用一樣做任何事情!
2、工作原理
接口:定義功能接口在PCL類庫或者共享類庫
接口實現(xiàn):各個平臺實現(xiàn)接口功能
注冊:各個平臺實現(xiàn)接口的類庫注冊DependencyAttribute屬性
調(diào)用:PCL類庫或者共享類庫調(diào)用DependencyService.Get<接口>()方法獲取平臺實例對象
稍微看看原代碼了解Xamarin.Forms如何實現(xiàn)依賴注入
DependencyAttribute.cs文件,定義了程序集屬性標(biāo)簽:
網(wǎng)友評論