gpt4 book ai didi

java - 了解 'behaviors' 和方法的放置

转载 作者:行者123 更新时间:2023-11-29 05:11:16 26 4
gpt4 key购买 nike

我想更好地了解如何在具有继承性的简单库存管理器程序中构造方法。

上下文:零售环境中的产品在不在销售现场时被分配了一个位置。将该位置想象成一个带有行和列的分隔书架,如下所示:

enter image description here

程序必须执行的一项操作是将产品添加到某个位置。例如将红星分配到上图中的位置 10/2/3。我的问题是,这是 worker 、垃圾箱或产品的“行为/方法”吗?当您考虑执行时,您如何决定哪个类(class)? worker 可以放置产品……产品可以放置……垃圾箱可以接收。似乎它可以在所有 3 个中实现。

我的想法告诉我,我应该在垃圾箱级别实现此操作,因为垃圾箱最终应该负责放置在其中的内容。例如,当它收到存储元素的请求时,它会确保存储的不是不当产品或非产品。明白我的意思了吗?

关于产品可以负责 self 检查以确保它是正确的,甚至 worker 可以确保它有一个正确的产品的论点怎么样?有些东西告诉我,也许应该有一种 super 验证形式,然后每个人都实现它自己的版本?

也许我没有正确考虑这个问题。你怎么看?我过度简化了吗?在简化?是否有针对此类事情的规则或最佳实践?

最佳答案

真正的答案是“视情况而定”。我认为许多开发人员很早就为此苦苦挣扎。

这也取决于不断变化的需求。您的第一个解决方案最初可能很有意义,但 2 年后随着您实现新功能而变得毫无意义。

我最好的建议是购买(或借用)Martin Fowler 关于重构的书的副本,并阅读(我相信)第一章中他的 Movie Rental 示例。他展示了一个简单的示例,以及他如何根据不断变化的需求对其进行重构。 (他的简单示例展示了一些与您表达的相同的担忧。租赁类、电影类或客户类应该处理哪些需求。)您不仅应该阅读他的示例,还应该在您自己的 IDE 中遵循。并且您应该尝试自己动手,看看在相同的不断变化的需求下您能得到什么。

这可能会让您开始了解最初需要担心的事情以及如何随着时间的推移调整您的代码。您会犯错误并学会识别代码中的“难闻气味”。这将为您将来的设计决策提供信息。这本书还将帮助您解决已有的难闻气味。

这是一个链接:http://refactoring.com

关于java - 了解 'behaviors' 和方法的放置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28350931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com