关于以下示例中的最佳做法,我有这个问题:
interface Request;
interface Service {
void process(Request request)
}
class MyService implements Service;
class YourService implements Service;
class MyRequest implements Request;
class YourRequest implements Request;
Run Code Online (Sandbox Code Playgroud)
但是如何确保MyService始终接受MyRequest并且YourService只会获得YourRequest,而不是相反?明显的答案"if-instance-of-check" MyService.process(...)看起来很丑陋并且不知何故反对SOLID原则.也许有更好的方法?
也许泛型会很好解决?(但是,如何在必须在Java 1.4下运行的代码中使用它们?)
小智 6
简而言之,您正在建立一个您不想遵守的界面,因此它并不是一个理想的设计.
我的意思是,如果MyService实现了Service,那么它必须能够接受任何类型的请求.否则它不遵循定义的合同.
我想问一下为什么你在这个实例中完全拥有Service接口,如果你确实需要它(对于其他方法),是否适合进程(Request request)方法,如果子类不遵守它的话.