---------------------
| AbstractPersister |
---------------------
^
/ \
---
|
------------------
| OrderPersister |
------------------
^
/ \
---
|
--------- ---------
| Offer |<>---| Item |
--------- ---------
以上是 UML 类图的 ascii 艺术。我有一个名为“offer”的域类,其中包含项目。例如,一份费用为 500 美元的旅行优惠,其中包含一张巴士票、在汽车旅馆的一晚住宿和一场演出。
当客户从商店结账时,报价将作为包含订单项目的订单保存到数据库中。
在纯面向对象的设计中,让 offer 继承自 是否有意义OrderPersister
?OrderPersister
可以使用其超类AbstractPersister
. 我想添加一个方法来OrderPersister
调用Book
,它将在数据库中创建订单及其项目。
如果这是一个糟糕的设计,还有什么替代方案?我希望它尽可能面向对象。