【发布时间】:2015-09-12 05:58:12
【问题描述】:
我们公司有一个庞大的代码库,其中包含不同实体的类,如 Porduct、Customer、Order、OrderItem 等。我们需要访问 AliExpress API 才能上传我们的产品、编辑信息及其状态、跟踪订单等。
问题是我们的实体和速卖通实体并不总是相同的。例如,他们的产品都由几个 SKU 之一组成,而我们的产品没有任何 SKU,但它们可以是其他 SKU 的“父”产品。 我们实现了一个“访问”层来访问 API,并实现了一个“API 函数”层来进行一些预验证并形成请求。那个方法对吗? 不清楚的是我们还需要多少其他层?
我们的 Product 类有方法 update()、create()、createEmpty() 来处理 Product 和不同产品属性类型(不是单独)的 getter,所有这些都通过服务类处理 PostgreSQL。
虽然使用不同的属性或多或少是标准化的,例如,我们需要更新产品,但我们会做类似的事情
Product->update(array('field'=>'value'))
但是,全球速卖通有几种方法可以更新产品的不同属性。更新价格不等同于更新股票,不等同于其他字段的分组更新。
你会推荐什么架构来处理这个问题?在处理对 API 的请求的层和像 Product 这样的“Item”类之间,我们需要多少层?
【问题讨论】:
标签: php design-patterns