這是一個最佳實踐類型的問題。可選方法,不會混亂擴展類型
假設我有一個抽象類Screen
,它實現了一些接口。
現在的事情是,接口添加了大量的方法,我敢肯定不是所有的屏幕實現都會使用它們。
我想知道什麼是最常見和最乾淨的方式來做到這一點。
剛剛離開他們的抽象
添加了混亂的擴展類
protected abstract void onFocus();
添加空體
的人不熟悉的擴展類也不好,他們可能會擔心如果可以重寫它們。
protected void onFocus() { // no impl }
做一些描述註釋?
我不確定這是否適合他們。
@NotImplemented protected void onFocus() { // no impl }
你許了什麼考慮最好?
如果每個Screen對這個方法有不同的實現,或者他們可以選擇不通過拋出'NotSupportedOperationException'或類似的東西來實現,那麼我喜歡第一個選項 –
在Java 8中,你也可以在接口本身實現'default'方法。 –
我知道,不幸的是我認爲在Java 8可以用於生產之前至少需要兩年的時間。 – MightyPork