我有一个接口接口隔离原则 - 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,您仍然需要正确格式化代码以获得更好的可读性 –