Thầy bạn nói đúng rồi đấy, lớp “phủ” ấy chỉ là những thứ liên quan đến xử lý dữ liệu mà không quan tâm đến giao diện hay bất kì thứ gì trực quan (nghe - nhìn). Nó là cốt lõi.
Ví dụ nhẹ vầy cho bạn nhé:
Viết 1 phương thức tính tổng của mảng và in ra màn hình Console.
public static void sumOfArray(int[] arr){
long sum = 0;
for(int i = 0; i < arr.length; ++i){
sum += arr[i];
}
System.out.println("Sum: " + sum);
}
Vậy vấn đề ở đây là gì?
Nếu mình cũng yêu cầu tính tổng, nhưng lại yêu cầu in ra giao diện (GUI) khác thì sao? JOptionPane
, JavaSwing, JavaFX, JavaWeb, Android?
Bạn phải sửa dòng System.out.println("Sum: " + sum);
theo yêu cầu nữa? KHÔNG!
Vậy có cách nào tất cả đều có thể dùng chung (gọi) sumOfArray()
?
public static long sumOfArray(int[] arr){
long sum = 0;
for(int i = 0; i < arr.length; ++i){
sum += arr[i];
}
return sum;
}
Việc của phương thức chỉ là xử lý và trả về kết quả, bên trong nó không chứa bất kì đoạn mã nào liên quan đến giao diện này nọ (trừ các thông tin liên quan đến gỡ lỗi, ngoại lệ - nếu có).
Sau này, quá trình triển khai giao diện chỉ cần gọi đến nó sẽ có kết quả để hiển thị.
Các bộ thư viện có sẵn họ đều làm vậy, bởi thế bạn có thể in ra bất cứ đâu. Console, Swing, FX, Web,… mà không phải mất công kêu họ “sửa dòng này sang JavaSwing giùm em với”.