ホームページ  >  記事  >  Java  >  Javaの凝集性

Javaの凝集性

PHPz
PHPzオリジナル
2024-08-30 15:57:061010ブラウズ

Java Cohesion は、単一の Java クラスで複数のタスクを実行するのではなく、特殊なタスク (単一タスク) を実行するために使用されるものとして定義されています。クラスが高い結束力で作成している場合、クラスは一度に異なるタスクを実行するのではなく、単一の特定の目的をターゲットにしていると言われます。

広告 このカテゴリーの人気コース JAVA マスタリー - スペシャライゼーション | 78 コース シリーズ | 15 回の模擬テスト

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

リアルタイムの例: n 個の数値の階乗を見つけて、その出力をユーザーに表示する必要があると仮定しましょう。階乗を求めて出力を表示するために単一のクラスを使用するとします。クライアントが常に異なるスタイルで出力の表示を変更したい場合は、階乗ロジックを変更せずに同じクラスを何度も変更する必要があります。これは開発における悪い習慣であるため、階乗ロジック用のクラスと表示出力ロジック用の別のクラスを使用すると、常に表示ロジック クラスのみを変更できるようになります。凝集性の高い練習になると言われています。

凝集の種類

凝集には 2 種類あります

Javaの凝集性

1.低凝集性

特定のタスクに集中するのではなく、さまざまなタスクを実行するようにクラスが設計されている場合、そのクラスは「凝集性の低いクラス」と呼ばれます。この種のアプローチは、間違ったプログラミング設計アプローチです。小さな変更のために多くの修正が必要でした。

構文:

class Operations
{
//code for multiplication
//code for division
//code for addition
//code for subtraction
.
.
.
}

説明: すべてのタスクは同じクラス内で実行されるため、変更が発生するとコードのほぼ全体が変更されます。

2.高い凝集力

クラスが特定のタスクを実行するように設計されている場合、そのクラスは「凝集性の高いクラス」と呼ばれます。この種のアプローチは、優れたプログラミング設計アプローチです。メンテナンスが簡単で、変更が少なくなります

構文:

class Multiplication
{
//code
}
class Division
{
//code
}
class Addition
{
//code
}
class Multiplication
{
//code
}

説明: 各クラスには独自のタスクがあるため、保守が簡単で、変更の可能性が低くなります。

Java では Cohesion はどのように機能しますか?

各クラスに特定のロジックを提供することに基づいて凝集が機能するため、保守性と可読性が向上します。

構文:

class Task
{
//logic for task
}
class Display
{
//display task here
}

Java における凝集の例

以下に例を示します:

例 #1 – 乗算の凝集

コード:

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

出力:

Javaの凝集性

例 #2 – 階乗的凝集

コード:

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

出力:

Javaの凝集性

例 #3 – 完全数の凝集

コード:

パッケージ 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();
}
}

出力:

Javaの凝集性

例 #4 – 回文数の凝集

コード:

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の凝集性

結論

Java Cohesion は、各クラスの特定のタスクを実行することにより、保守性を向上させ、コードの変更が少なくなるようにするために使用されます。これを凝集性の高い設計プログラミングと言います。リアルタイム アプリケーションの凝集性が高いことが望ましいです。

以上がJavaの凝集性の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:Javaの内部クラス次の記事:Javaの内部クラス