我正在编写一个模拟器,作为开始学习Java和面向对象分析与设计(OOA& D)的第一个雄心勃勃的项目。模拟器将比较不同的方法来管理供应链中的库存(如果需要从业务部分获得更多详细信息,请告诉我)。
我很难为我的班级设计一个脱钩设计。尽管模拟器的完整版本有更多的类,但我遇到问题的类是:
所以我的问题是:考虑到我面临的业务逻辑耦合,这是否真的很好解耦?我可以应用任何其他策略(哪些?)来帮助我设计更强大和灵活的模拟器?
答案 0 :(得分:4)
ProductData地图中的每个条目都应该是ProductDataEntry类的成员(除非它们包含的数据变化很大)。
听起来RawResults可能会扩展ProductDataEntry,因为它将具有相同的字段。
整体而言,你的设计听起来还不错 - 虽然没有看到实际的物体和整体架构,但没有办法说出更多的东西,而且这不是那个地方(而且我没有时间)。
说实话,在你的编程生涯的这个阶段(甚至更晚),如果他们不工作,你不应该害怕尝试并扔掉它们。而不是花3天时间尝试决定做什么,花3天时间尝试不同方法的3个原型,然后最后看看你学到了什么,你喜欢什么,不喜欢原型。
请注意,虽然尽可能地解耦是一个很好的目标,有时问题的本质是事物是紧密耦合的。当发生这种情况时,不要将整个架构弯曲变形以对抗它 - 只要确保它们确实需要尽可能紧密地耦合。