使用面向对象编程,有些业务是需要以事务方式进行处理的
比如销售出库,需要对数据库进行:
1.保存出库单
2.生成财务凭证
3.冲减库存
简单伪码:
出库单的保存方法
Save()
{
保存出库单;
生成财务凭证类实例,调用财务凭证类的保存方法保存财务凭证
生成物资类实例,调用物质类实例冲减库存方法冲减库存
}
业务层原则上不直接操作数据库,是通过调用类提供的方法来实现,但需要保证操作的原子性,请教大家有没有好的方法,在不破坏面向对象设计原则的基础上保证事务操作的原子性
比如销售出库,需要对数据库进行:
1.保存出库单
2.生成财务凭证
3.冲减库存
简单伪码:
出库单的保存方法
Save()
{
保存出库单;
生成财务凭证类实例,调用财务凭证类的保存方法保存财务凭证
生成物资类实例,调用物质类实例冲减库存方法冲减库存
}
业务层原则上不直接操作数据库,是通过调用类提供的方法来实现,但需要保证操作的原子性,请教大家有没有好的方法,在不破坏面向对象设计原则的基础上保证事务操作的原子性
{
}可以只公开构造函数,把数据库细节屏蔽掉,然后以下方法,都增加一个BusinessTransationContext的参数,
1.保存出库单
2.生成财务凭证
3.冲减库存