在開發應用程式時,必須保持組件彼此獨立,這就是鬆散耦合。它為您的應用程式提供標準化、整合、規範化和治理。鬆散耦合的應用程式很容易擴展。
在本文中:您將透過一個範例了解如何使應用程式鬆散耦合並充分利用它。
假設您正在從 UserDatabase 資料庫中取得某些內容,這是用於取得資料庫記錄的資料層定義的函數:
public class UserDatabase { public String getUserDetails(){ return "User Deatils "; } }
在我們的服務層中,讓我們建立一個函數來與資料層通訊以取得記錄:
public class UserDatabase { public String getUserDetails(){ return "User Details in DB1"; } }
在我們的應用程式層或主函數中,我們將與我們的服務層對話:
public static void main(String[] args) { //Tight Coupling UserManager userManager = new UserManager(); System.out.println(userManager.getUserInfo()); }
在此應用程式中,當我們嘗試擴展應用程式時,緊密耦合將使其變得冗餘且難以擴展。
這就是為什麼鬆散耦合的應用程式如此重要,在 Spring Boot 中我們使用介面來實現它。讓我們將上面的應用程式鬆散耦合。
讓我們定義一個接口,為我們提供資料層的整體結構:
public interface UserDataProvider { String getUserDetails(); }
現在在實作此介面時取得資料庫記錄:
public class UserDatabase implements UserDataProvider{ @Override public String getUserDetails(){ return "User Details in DB1"; } }
現在定義服務層與資料層通訊:
public class UserManager { private UserDataProvider userDataProviderr; public UserManager(UserDataProvider userDataProvider) { this.userDataProviderr = userDataProvider; } public String getUserInfo(){ return userDataProviderr.getUserDetails(); } }
在這裡,當UserDataProvider 引用物件注入UserManager 時,我們將能夠存取實作該介面的UserDatabase 函數,因此它將能夠存取實現該介面的
UserDatabase 函數,因此它將為我們提供抽象資料層的層級。
現在我們可以透過
UserManager
UserDataProvider userDataProvider = new UserDatabase(); UserManager userManager = new UserManager(userDataProvider); System.out.println(userManager.getUserInfo());
我們可以輕鬆地擴展我們的應用程式並整合盡可能多的資料庫連接,就像我們需要配置另一個資料庫一樣,例如WebServerDatabase,我們只需要創建分配給實現的介面的實例,然後透過
UserManager我們也可以存取它。使用介面為我們提供了抽象、鬆散耦合和多態性(透過不同的類別實現相同的介面為我們提供了多態性)。
快樂編碼:)以上是使您的應用程式鬆散耦合-抽象-多態的詳細內容。更多資訊請關注PHP中文網其他相關文章!