php - 电子商务网站的 UML 类图?

标签 php oop database-design uml class-diagram

<分区>

下图是我第一次尝试创建描述电子商务或在线购物的类图和用例图。

我敢肯定这是一个糟糕的设计并且充满了缺陷,但我希望向你们学习如何设计它。我对您对设计模式的使用以及您将使用哪些模式、您将如何在设计中实现它以及原因特别感兴趣。

the use case

任何建议、批评、评论和建议都将不胜感激。提前致谢。


最佳答案

令人印象深刻且全面,我想说您走在正确的轨道上。我没有看到任何大的失误会阻止您继续定义序列图。我在下面的评论只是一种意见,可以就任何一种方式进行辩论。

您显示了 storeList 和 ProductList 之间的关联,如果您在具有产品主列表的商店之间追踪相同的产品(例如母公司和特许经营店),这很有意义,但它看起来不像您的商店以这种方式相关。

如果您要为 Currency 创建一个类,请继续将 Price 设置为一个单独的类。这将使处理价格变化(如折扣)变得更加容易。此外,您只显示每种产品可能的 1 种货币,那么以多种货币销售呢?您需要将销售交易视为与库存不同的独立领域。产品本身没有标价(通常),它是分配给它的并且可以更新,更不用说同一产品可能随着时间的推移或由不同的商店以不同的价格出售。您需要的是一个库存列表,其中包含产品 ID、当前销售价格和可能需要的任何折扣的属性,以及一个历史文件,其中包含库存列表的所有更改,以便您在需要检查价格时使用从过去的销售。

出于与 Price 相同的原因,继续将所有产品描述属性移动到 ProductDescription 类,例如颜色、尺寸、重量等。这样,如果产品需要自定义属性类型(一家商店同时销售汽车和软件),您只需继承 ProductDescription 类,而不是 Product 类。

关于php - 电子商务网站的 UML 类图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9107448/

相关文章:

javascript - 在 php 表单提交之前添加电子邮件验证

php - 即使使用 set_time_limit(0) PHP/Apache,脚本也会超时

mysql - 如何通过 'tag' 属性对数据库实体进行高级过滤

mysql - 带前缀的自增 ID

Sql Server,使用自引用外键构建非循环父子关系

php - "cURL error 77: error setting certificate verify locations"无明显原因

php - Laravel:如何仅在日期存在时验证日期?

java - 循环来自另一个类的变量

php - OOP PHP 的良好培训资源,任何人?

PHP 特征 : How to resolve a property name conflict?