ホームページ >Java >&#&チュートリアル >Javaの凝集性
Java Cohesion は、単一の Java クラスで複数のタスクを実行するのではなく、特殊なタスク (単一タスク) を実行するために使用されるものとして定義されています。クラスが高い結束力で作成している場合、クラスは一度に異なるタスクを実行するのではなく、単一の特定の目的をターゲットにしていると言われます。
広告 このカテゴリーの人気コース JAVA マスタリー - スペシャライゼーション | 78 コース シリーズ | 15 回の模擬テスト無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
リアルタイムの例: n 個の数値の階乗を見つけて、その出力をユーザーに表示する必要があると仮定しましょう。階乗を求めて出力を表示するために単一のクラスを使用するとします。クライアントが常に異なるスタイルで出力の表示を変更したい場合は、階乗ロジックを変更せずに同じクラスを何度も変更する必要があります。これは開発における悪い習慣であるため、階乗ロジック用のクラスと表示出力ロジック用の別のクラスを使用すると、常に表示ロジック クラスのみを変更できるようになります。凝集性の高い練習になると言われています。
凝集には 2 種類あります
特定のタスクに集中するのではなく、さまざまなタスクを実行するようにクラスが設計されている場合、そのクラスは「凝集性の低いクラス」と呼ばれます。この種のアプローチは、間違ったプログラミング設計アプローチです。小さな変更のために多くの修正が必要でした。
構文:
class Operations { //code for multiplication //code for division //code for addition //code for subtraction . . . }
説明: すべてのタスクは同じクラス内で実行されるため、変更が発生するとコードのほぼ全体が変更されます。
クラスが特定のタスクを実行するように設計されている場合、そのクラスは「凝集性の高いクラス」と呼ばれます。この種のアプローチは、優れたプログラミング設計アプローチです。メンテナンスが簡単で、変更が少なくなります
構文:
class Multiplication { //code } class Division { //code } class Addition { //code } class Multiplication { //code }
説明: 各クラスには独自のタスクがあるため、保守が簡単で、変更の可能性が低くなります。
各クラスに特定のロジックを提供することに基づいて凝集が機能するため、保守性と可読性が向上します。
構文:
class Task { //logic for task } class Display { //display task here }
以下に例を示します:
コード:
package com.cohesion; import java.util.Scanner; //Multiplication logic class class Multiplication { // method for providing logic for multiplication of 2 numbers public static double getMultiplication(double x, double y) { // return the multiplcation output return x * y; } } // Output display class public class MultiplicationCohesion { public static void main(String args[]) { // scanner class for ask user input Scanner scanner = new Scanner(System.in); System.out.println("Enter any two numbers=>"); // ask the user 2 numbers double firstNumber = scanner.nextDouble(); double secondNumber = scanner.nextDouble(); // display the multiplication output System.out.println("Muliplication of " + firstNumber + " and " + secondNumber + " is " + Multiplication.getMultiplication(firstNumber, secondNumber)); scanner.close(); } }
出力:
コード:
package com.cohesion; import java.util.Scanner; //class for factorial class Factorial { // method for factorial logic public static int getFactorial(int inputNumber) { int factorial = 1; // calculating the factorial for (int temp = 1; temp <= inputNumber; temp++) { factorial = factorial * temp; } // returning the factorial return factorial; } } public class FactorialCohesion { public static void main(String args[]) { // scanner class for ask user input Scanner scanner = new Scanner(System.in); System.out.println("Enter any number=>"); // ask the user 1 number int number = scanner.nextInt(); // display the factorial output System.out.println("Factorial of " + number + " is " + Factorial.getFactorial(number)); scanner.close(); } }
出力:
コード:
パッケージ com.cohesion;
import java.util.Scanner; //class for perfect number class PerfectNumber { static int sum = 0; // method for perfect number logic public static int getPerfectNumber(int inputNumber) { for (int i = 1; i < inputNumber; i++) { if (inputNumber % i == 0) { sum = sum + i; } } return sum; } } public class PerfectNumberCohesion { public static void main(String args[]) { // scanner class for ask user input Scanner scanner = new Scanner(System.in); System.out.println("Enter any number=>"); // ask the user 1 number int number = scanner.nextInt(); int output = PerfectNumber.getPerfectNumber(number); // checking sum and entered number if (output == number) { // display the perfect number output System.out.println(number + " is a Perfect Number"); } else { // display the perfect number output System.out.println(number + " is not a Perfect Number"); } scanner.close(); } }
出力:
コード:
package com.cohesion; import java.util.Scanner; //class for polindrome number class Polindrome { static int sum = 0; // method for polindrome number logic public static int getPolindromeNumber(int inputNumber) { int r, sum = 0, temp; temp = inputNumber; while (inputNumber > 0) { r = inputNumber % 10; // getting remainder sum = (sum * 10) + r; inputNumber = inputNumber / 10; } return sum; } } public class PolindromeCohesion { public static void main(String args[]) { // scanner class for ask user input Scanner scanner = new Scanner(System.in); System.out.println("Enter any number=>"); // ask the user 1 number int number = scanner.nextInt(); int output = Polindrome.getPolindromeNumber(number); // checking sum and entered number if (output == number) { // display the palindrome output System.out.println(number + " is a Polindrome Number"); } else { // display the palindrome output System.out.println(number + " is not a Polindrome Number"); } scanner.close(); } }
出力:
Java Cohesion は、各クラスの特定のタスクを実行することにより、保守性を向上させ、コードの変更が少なくなるようにするために使用されます。これを凝集性の高い設計プログラミングと言います。リアルタイム アプリケーションの凝集性が高いことが望ましいです。
以上がJavaの凝集性の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。