ホームページ > Java > &#&チュートリアル > アプリケーションを抽象化とポリモーフィズムの疎結合にする

アプリケーションを抽象化とポリモーフィズムの疎結合にする

WBOY
リリース: 2024-07-16 16:07:50
オリジナル
604 人が閲覧しました

Make your application loosely coupled-Abstraction-PolyMorphism

アプリケーションの開発中は、コンポーネントを互いに独立させておくことが必須であり、これが疎結合です。これにより、アプリケーションの標準化、統合、正規化、ガバナンスが実現します。疎結合アプリケーションはスケールアップが簡単です。

この記事の内容: アプリケーションを疎結合にして最大限に活用する方法を例を用いて学びます。

疎結合の必要性:

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());
    }

ログイン後にコピー

このアプリケーションでは、アプリケーションをスケールアップしようとすると、密結合により冗長になり、拡張が困難になります。
だからこそ、疎結合アプリケーションは非常に重要であり、スプリング ブートではインターフェイスを使用してそれを実現します。上記のアプリを疎結合にしてみましょう。

疎結合:

データ層の全体的な構造を与えるインターフェイスを定義しましょう:

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 関数にアクセスできるようになり、そこで抽象化が提供されます。データ層のレベル。

これで、UserManager を通じてレコードにアクセスできるようになります:

    UserDataProvider userDataProvider = new UserDatabase();
        UserManager userManager = new UserManager(userDataProvider);
        System.out.println(userManager.getUserInfo());

ログイン後にコピー

WebServerDatabase などの別のデータベースを構成する必要がある場合と同様に、アプリケーションを簡単にスケールアップして、必要な数のデータベース接続を統合できます。必要なのは、実装されたインターフェイスに割り当てられたそのインスタンスを作成することだけです。 UserManager を介してこれにもアクセスできます。インターフェイスを使用すると、抽象化、疎結合、ポリモーフィズムが提供されます (同じインターフェイスを異なるクラスで実装するとポリモーフィズムが提供されます)。

コーディングを楽しんでください:)

以上がアプリケーションを抽象化とポリモーフィズムの疎結合にするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート