之前一直在了解 mvp 模式架构,最近深入学习 spring 的注解时,想到了 spring 关于使用类似中间者方式来解耦显式的引用让我想到在 java 调用 java 时的接口使用方式。
通过接口,例如:
interface BaseXxx {
void abc();
}
interface Child1Xxx extend BaseXxx{
void def();
}
interface Child2Xxx extend BaseXxx{
void ghi();
}
==============================================================>
public void manageXxx(BaseXxx baseXxx){
if(baseXxx insteadOf Child1Xxx)
((Child1Xxx)baseXxx).def();
if(baseXxx insteadOf Child2Xxx)
((Child2Xxx)baseXxx).ghi();
}
==============================================================>
manageXxx(new Child1Xxx(){
void abc(){
...
}
void def(){
...
}
})
这样的效果是当对象调用不同的接口实现不同的业务时,用户可以根据接口的不用处理不用的业务。
演变同理,如下:
public class Child1 implement Child1Xxx{
public void abc(){
}
public void def(){
}
}
public class Child2 implement Child2Xxx{
public void abc(){
}
public void ghi(){
}
}
public void manageXxx(BaseXxx baseXxx){
if(baseXxx insteadOf Child1Xxx)
((Child1Xxx)baseXxx).def();
if(baseXxx insteadOf Child2Xxx)
((Child2Xxx)baseXxx).ghi();
}
产生灵活多变松耦合的效果。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于