我有一個接口接口隔離原則 - Java的
interface XXXCommandHandler(){
void parse(String something);
String response();
String additionalResponse();
}
- 一些實現XXXCommandHandler的類不實現additionalResponse()。
- 我使用ApplicationContextManager.getInstance()。getBeansOfType(XXXCommandHandler.class)得到實現XXXCommandHandler
- 類然後調用分析,應對和additionalResponse
- 由於某些不實現additionalResponse我不得不返回null 。
我能想到的以下
- ,而不是返回空的類沒有實現additionalResponse,declaire additionalResponse作爲默認的方法和返回null /或使其返回可選等,並覆蓋它的在實現additionalResponse方法的類上。
- 醜陋的方式: - 在所有類別中返回NULL沒有實現additionalResponse
與解析和應對方法和XXXCommandHandlerAddtionalresponse()與additionalResponse方法延長XXXCommandHandlerParser即
接口XXXCommandHandlerParser創建兩個不同的接口XXXCommandHandlerParser() (){
void parse(String something); String response(); }
接口XXXCommandHandlerAddtionalresponse() 延伸XXXCommandHandlerParser {
String additionalResponse(); }
但如果我這樣做#3,我不得不改變 ApplicationContextManager.getInstance()。getBeansOfType(XXXCommandHandlerAddtionalresponse.class)。
- 如果我做#4,那麼沒有實現additionalResponse或沒有實現XXXCommandHandlerAddtionalresponse的類將不會被拾取。
你能想到任何優雅的方式嗎?
@Mena - 我覺得你的意思是#1在接口默認方法中可選。 –
「我有一個接口'接口XXXCommandHandler(){...'」 ......這不是有效的Java。 –
Hari,您仍然需要正確格式化代碼以獲得更好的可讀性 –