Tôi mới đây (4 ngày trước) bắt đầu lập trình trong JAVA. Tôi có một số kinh nghiệm lập trình tổng thể từ C++ và PHP. Câu hỏi của tôi là: chúng ta có thể thực hiện một hàm trong JAVA, có sẵn trong tất cả các lớp không? Tôi đang nghĩ về một số chức năng ghi nhật ký toàn cầu, mà tôi cần phải gọi ở một vài nơi (sự kiện đăng nhập, lỗi, v.v.). Hãy tưởng tượng tôi có hai lớp, A và B. Tôi cần gọi chức năng ghi nhật ký trong cả hai, nhưng tôi không muốn sao chép toàn bộ nội dung chức năng (điều khủng khiếp mà tôi tin), và tôi muốn gọi nó là nghiêm ngặt (mà không tạo một lớp khác, khởi tạo nó, và sau đó gọi từ ví dụ), như logEvent(someVariable)
. Vì vậy, tôi nên sử dụng một lớp trừu tượng C, mà A và B sẽ mở rộng, NHƯNG họ đã là một phần mở rộng của lớp khác (được xây dựng trong). Kể từ khi thừa kế nhiều không được phép (là nó?), Tôi cần phải làm một số trick. Singleton cũng không làm tôi hài lòng. Trong PHP hoặc C++ tôi sẽ chỉ tạo ra tập tin riêng biệt với cơ thể chức năng và sau đó bao gồm nó.Chức năng Java (phương pháp) có sẵn ở khắp mọi nơi (toàn cầu)
Dưới đây là cách tôi muốn sử dụng nó:
public class A extends SomeClass {
String error = "Error from class A";
logEvent(error);
}
public class B extends SomeOtherClass {
String error = "Error from class B";
logEvent(error);
}
Bạn có thể đọc về cái ác 'Singleton' mẫu. –
@LeeMeador "ác" là vấn đề quan điểm. – hexafraction