Tôi đang làm việc trên một số khung công tác và tôi có một lớp trừu tượng, nên được triển khai.Triển khai phương pháp tùy chọn trong lớp trừu tượng
Bây giờ tôi có một số nội dung khác mà người dùng có thể định cấu hình, nhưng nó là tùy chọn.
Vì vậy, thay vì phương pháp trừu tượng:
public abstract class AbstractModule {
public void doSomething() {
if (logMessage() != null)
System.out.println(logMessage());
doStuff();
}
protected abstract String logMessage(); // I'm optional
protected abstract void doStuff();
}
tôi nghĩ chỉ kiểm tra cho một thực hiện giao diện:
public interface Log {
String logMessage();
}
public abstract class AbstractModule {
public void doSomething() {
if (this instanceof Log) {
if (((Log) this).logMessage() != null)
System.out.println(((Log) this).logMessage());
}
doStuff();
}
protected abstract void doStuff();
}
Vì vậy, nếu một người nào đó đang thực hiện AbstractModule với giao diện đăng nhập nó cũng sẽ hiển thị thông điệp. Lợi ích cho người triển khai mà tôi thấy: Cô ấy không cần quan tâm đến việc thực hiện logMessage(), vì nó sẽ là ví dụ đầu tiên. Đây có phải là một cách tiếp cận hợp lệ hoặc nó nên được thực hiện khác nhau?
Cảm ơn trước!
Trân trọng