《设计模式之美》实战一(下):如何实现一个遵从设计原则的积分兑换系统?

本文介绍了如何设计一个遵循设计模式的积分兑换系统,包括数据库设计、接口设计和业务模型设计。讨论了为何采用MVC三层结构开发,解释了BO、VO、Entity存在的意义,以及如何处理它们之间的转化和代码重复问题。文章强调了高内聚、松耦合、单一职责等设计原则的应用。
摘要由CSDN通过智能技术生成

王争《设计模式之美》学习笔记

业务开发包括哪些工作?

  • 我们平时做业务系统的设计与开发,无外乎有这样三方面的工作要做:接口设计、数据库设计和业务模型设计(也就是业务逻辑)。
  • 数据库和接口的设计非常重要,一旦设计好并投入使用之后,这两部分都不能轻易改动。
    • 改动数据库表结构,需要涉及数据的迁移和适配
    • 改动接口,需要推动接口的使用者作相应的代码修改
  • 业务逻辑代码侧重内部实现,不涉及被外部依赖的接口,也不包含持久化的数据,所以对改动的容忍性更大。

针对积分系统,我们先来看,如何设计数据库。

  1. id:明细ID
  2. user_id:用户ID
  3. channel_id:赚取或消费渠道ID
  4. event_id:相关事件ID,比如订单、评论、优惠券换购交易等
  5. credit:积分
  6. create_time:积分赚取或消费时间
  7. expired_time:积分过期时间

接下来,我们再来看,如何设计积分系统的接口。

  • 接口设计要符合单一职责原则,粒度越小通用性就越好。但是接口粒度太小也会带来一些问题:
    • 多次调用小接口,增加网络开销
    • 原子操作拆成多个小接口,涉及分布式事务的数据一致性问题
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值