仓储是类似一个集合,负责对象的保存、删除、获取。
前提:
系统中的数据不需要持久化,全部在内存中。
我的疑问是:
1、通过工厂创建的对象实例,是否已经在系统里了?
存在:调用仓储的查询是否能获得刚才创建的对象实例?
不存在:那么将对象实例注册到系统里的入口在哪里?仓储里的保存?
2、在对象注册到系统里时,肯定有部分规则约束,那么这个规则约束放在哪里?例如:用户注册时,帐户是不允许重复的。 网上订票时,某一时刻班次的订单数是不能大于座位数的。
我的疑问是:
1、通过工厂创建的对象实例,是否已经在系统里了?
存在:调用仓储的查询是否能获得刚才创建的对象实例?
不存在:那么将对象实例注册到系统里的入口在哪里?仓储里的保存?
2、在对象注册到系统里时,肯定有部分规则约束,那么这个规则约束放在哪里?例如:用户注册时,帐户是不允许重复的。 网上订票时,某一时刻班次的订单数是不能大于座位数的。
你这个系统是指内存吗? 工厂是负责创建对象到内存中,仓储负责内存中的对象和持久化数据进行转换的,把立体式的对象格式转为扁平的关系数据表格式保存起来。
但是,例如 通过工厂产生一个订单实例,那么系统里肯定是查询不到这个订单的,因为工厂只是负责创建而已,创建后,必须要有一个注册(添加)的步骤,将这个订单实例加入到系统中,这样才能被其他用户查询到。
工厂并不负责将创建的实例注册到系统里。那由谁来执行注册步骤呢?
例如客户端代码:
Order = OrderFactory.Create(...)
执行完这句,其他用户就能看见我创建的订单了吗?
两种方式,将order对象传到界面显示就可以了,还有一种是将order注册到缓存In-memory系统,以后界面或任何地方需要这个order对象,只要根据其实体主键ID到系统获得即可。