ホームページ >Java >&#&チュートリアル >Java での結合
JAVA における
カップリングは a の指標です。 オブジェクト指向環境における、あるクラスと他のクラスとの依存関係、b。エンドユーザーの要件を満たすために、開発者がさまざまなクラスにわたってコードを変更する際の柔軟性のレベル、c. クラスの機能が他のクラスによって使用される方法 (直接または外部インターフェイスの助けを借りて)、 d. 本番稼働後のコードの保守に必要な労力、e. コーディングとテストの柔軟性を高めるために、制御反転や依存性注入などの革新的なソフトウェア技術を使用する方法コードの数。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
Java には 2 つの主要な結合があり、それらを詳しく分析してみましょう。
オブジェクト指向アプリケーション設計では、すでに投資された労力を再利用し、車輪の再発明を避けるために、あるクラスで開発されたロジックを別のクラスで利用する必要が常にあります。
クラス間の直接コラボレーションは密結合につながり、その特徴は次のとおりです
密結合の例
この例の 2 つの連携クラス、「Ordervalue」と「order」は相互依存しています。呼び出し側クラス「Ordervalue」は、呼び出し先クラス「order」にコード化されたビジネス ロジックを認識しており、呼び出し側クラスのコードは構造化されており、呼び出し側クラスの変更はプログラムの結果を狂わせます。
したがって、クラス「Ordervalue」と「Order」は密接に結合していると結論付けることができます。
コード:
// Tight Coupling - Sample program public class ordervalue // Calling class { public static void main(String args[]) // method in the class { order b = new order(600,5); // creating object for the called class System.out.println("value of the order is"); // order and execute it System.out.println(b.value); // Prints the order value computed by } // the called class } class order // Called class { public int value; // method in the class order(int orderquantity, int rate) // business logic { this.value = orderquantity * rate; // computing the value } }
出力:
この概念では、OOPS のビジネス ロジックと共通機能を共有するために連携する必要があるクラスが、外部ソースを通じて結合されます。したがって、それらは緩やかにまたは間接的に相互に接続されています。
疎結合の主な属性は次のとおりです
制御の反転 (IOC)
プログラムモジュールやオブジェクトの制御をコンテナフレームワークに移す概念です。この概念は OOPS で非常に頻繁に使用されます。プログラム コードがライブラリを呼び出す代わりに、コンテナ フレームワークが制御を引き継ぎ、コードを呼び出します。依存関係を作成するオブジェクトとは異なり、依存関係がオブジェクトに注入されます。
この概念は、プログラミングにおける疎結合とモジュール性を促進します。
依存性注入 (DI)
DI は IOC の概念が使用される手段であり、オブジェクトの依存関係を設定する際に制御の転送が行われます。
疎結合の例
In the example, three Classes, “month1”, “month2”, “month3” are independent modules, and they collaborate little with each other through an interface “iface”. As a result, these classes have very little knowledge of the other classes on what they are doing. They only know that all the classes are interacting with an interface.
There is no object created using the other classes in any of these classes, and they are the typical examples of loose coupling.
Code:
// Loose Coupling in JAVA - Sample Program interface Iface //Interface is defined { public void monthname(); //module within the interface } class month1 implements Iface { // Class interacts through public void monthname() // interface { System.out.println("January"); } } class month2 implements Iface { // Class interacts through public void monthname() // interface { System.out.println("Feburary"); } } class month3 implements Iface { // Class interacts through public void monthname() // interface { System.out.println("March"); } } public class Subject { // Execution starts here public static void main(String[] args) { Iface t = new month1(); // First class called thru t.monthname(); // interface Iface tx = new month2(); // Second class called thru tx.monthname(); // interface Iface tx2 = new month3(); // Third class called thru tx2.monthname(); } // interface }
Output:
As far as possible, applications will have to be designed to hold only loose couplings for better maintainability and serviceability and keep interdependence between program components very minimal. However, if interdependence is a must, the components will have to be connected only through the interface.
以上がJava での結合の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。