前面的範例展示了標準方法的使用,但不是在實際場景中。
Series 介面被廣泛使用,許多程式都依賴它。
我們發現 Series 的幾個實作增加了一個方法,該方法傳回一個包含該系列的下 n 個元素的陣列。
決定使用 getNextArray(int n) 方法改進 Series 接口,其中 n 指定要檢索的元素數量。
在標準方法之前,加入此方法會破壞未定義它的現有程式碼。
使用標準方法,可以將新方法新增至Series介面中,而不會導致現有程式碼出現問題。
在某些情況下,如果無法提供適用於所有情況的實現,新增至介面的標準方法會報告錯誤。
這些預設方法定義可選代碼。
在某些情況下,可以定義預設方法以在任何情況下工作。
getNextArray() 方法是一個範例,因為它可以使用 Series 介面已經需要的 getNext() 方法來實作。
可以使用標準方法 getNextArray().
標準 getNextArray() 方法是使用 getNext() 方法實現的,該方法已存在於原始 Series 規範中。
任何實作 Series 的類別都可以使用 getNextArray(),而無需重寫該方法。
新增 getNextArray() 不會使現有程式碼失效。
如有必要,類別可以提供自己的 getNextArray() 實作。
標準方法的優點:
允許介面發展而不會使現有程式碼失效。
提供可選功能,無需佔位符實作。
對於 getNextArray(),如果 Series 實作不需要該方法,則不需要提供佔位符實現,從而使程式碼更清晰。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3