Java Cohesion 被定義為用於執行專門的任務(單一任務),而不是使用單一 java 類別執行多個任務。如果一個類別的創建具有高內聚力,那麼據說它是針對一個特定目的,而不是一次執行不同的任務。
廣告 該類別中的熱門課程 JAVA 掌握 - 專業化 | 78 課程系列 | 15 次模擬測驗開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
即時範例:假設我們必須找出 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中文網其他相關文章!