老师能举个栗子来刻画下核心逻辑和辅助逻辑怎样分离么
来源:2-16 实战场景Coding训练:解读反射-代理-AOP 并结合业务逻辑实现(1)

慕粉4331336
2021-03-09
老师中的课程中提到,下单支付的核心逻辑是两个
- 下单
- 支付
并且伴随着一些其他的辅助逻辑
- 通知
- 记录日志
- …
想知道在Java项目中,随着项目的复杂性逐渐增大,上面的一整个下单逻辑代码会进行怎样演化。
最直接的想法是对于通知独立抽离出一个NotifyService来通知,下单成功之后执行NotifyService的方法,但是很明显感觉这样很普通,随着可能功能的不断增加,依然需要插入很多补充的业务逻辑,如果是单纯的用AOP,AOP中的相关逻辑也是不断增加的,通过这个栗子老师能按照您的思路简单说说演化过程,是怎样一步一步的抽象,综合应用各种设计模式,最后实现分离的。谢老仙[手动鲜花]
3回答
-
如果系统很复杂, AOP是一种编程手段。 而更重要的是,对象的设计。 用户在支付上下文中完成下单,在活动上下文中参与活动,在购物上下文中选购商品。 对于系统设计,复杂度会逐渐增大,建议阅读下Eric Evans的领域驱动设计。 比如支付完触发Notify,那Notify对支付是什么能力? 是核心能力吗?还是支撑能力?如果是支撑能力,那就可以解耦。 解耦可以用AOP,也可以用消息队列,也可以用发布订阅……
112021-03-10 -
求老仙
2021-03-10
以微信为例:
核心域:聊天、关系、朋友圈
支撑域:短视频、、小程序、公众号
通用域:用户、安全、实名认证、短信……
20 -
求老仙
2021-03-10
以电商系统为例:
核心域(核心竞争力): 商品、商户、库存、订单、物流等
支撑域(不是核心竞争力):支付、搜索、直播、客服、店铺装修……
通用(所有业务都需要):权限、安全、数据、消息推送……
10
相似问题
回答 2
回答 1