私はいくつかのフレームワークで作業していますが、抽象クラスが実装されています。抽象クラスでのオプションの実装
これで、ユーザーが設定できる必要がある他のものがありましたが、これはオプションです。
ので、代わりの抽象メソッド:私はちょうどインタフェースの実装をチェックする考え
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();
}
:
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();
}
だから、誰かがインターフェイスでAbstractModuleを実装している場合、それはまた、表示されるでしょうログインメッセージ。私が見ている実装者のメリット:最初の例のように、logMessage()の実装には注意する必要はありません。これは有効なアプローチですか、それとも別の方法で行うべきですか?
ありがとうございます! instanceof
に手を伸ばす
よろしく