第一种方式:接口A,定义方法do(),实现类B,C,D,都实现方法do(),调用方永远只需要引入private A a,通过xml或者注解配置实现类B,C,D其中之一即可
第二种方式:X,Y,Z,都有各自的方法doX(),doY(),doZ(),这个月客户希望用X的方法处理业务,下个月希望用Y的方法处理业务,再下个月用Z的方法处理业务,就需要不停的改代码,重新打包发布,这样每个月都要停机,部署,重启,如果业务处理变动频繁,对客户来说是灾难性的,所以这就是接口存在的意义,对外统一方法,对内动态决定实现方,这样的好处是1、对外暴露的api统一,包括方法名,入参2、动态配置业务实现。3、B,C,D的开发者专注自己的业务实现。