业务解耦方案的不同方法
假设对象中的pay方法,支付前后需要有不同的业务操作。
面相对象的继承
添加扩展点
pay()
beforePay()
afterPay()
实现类可以对扩展点 before、after进行扩展,扩展点与业务逻辑耦合。
对于同一类,不同实现方式的业务可以根据扩展点扩展实现方式。
同业务:不同实现
面相切面AOP编程
常用于抽离公共业务:事务、日志、安全校验等。
跨业务:公共业务的实现。
事件发布
将业务关注点分离,当前业务处理状态发布时间,不同业务监听到不同事件处理不同业务需求。
跨业务:复杂业务的扩展。