有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (1) 个答案

  1. # 1 楼答案

    这并不是说:这是我们能做到这一点的唯一方法

    但更多:嘿,看看这个疯狂的替代方法

    对于一般的设计模式,我强烈建议您将其视为如何做某些事情的想法,而不是特定问题的解决方案

    更像是。。。他们会教你一些有趣的方法来处理某些你以前可能没有考虑过的情况。所以,当你真的需要类似的东西时,你的大脑不会说“不,从来没有这样想过,别管我。”。“,但要建立其他方面可能无法建立的联系

    我从未见过有人这样说:“让我们使用XYZ设计模式来实现这一点!” 然而,当人们不得不解释他们的代码时,我有时会听到他们提到某些设计模式。这意味着他们不必解释他们思路中的特定部分,并且仍然被理解

    比如“嗯,这有点像一种责任链模式,除了……”

    所以,不要花太多时间去想为什么,用你的时间去探索和理解如何去做。无论如何,谈论设计选择要花太多时间。每件事都有利弊

    最后,让我们暂时谈谈为什么,尽管我不想这么说。我会简要地说,我相信还有其他方面要考虑。

    (注意:当我说‘链的一部分’时,我指的是在同一终点结束的较低部分。比如a->;B->;C->;D->;E->;F。我指的是C->;D->;E->;F或D->;E->;F,而不是B->;C->;D)

    • 如果要切换出链的一部分,只需更改一个变量。在你的for中,会有大量的if可以删除、注释或放到其他地方,因为你不再需要它们了。此外,您可以轻松地保留旧链,而不会弄乱正在使用的代码
    • 在不同的地方使用同一链条的一部分是非常容易的。如果在循环中只使用If语句的一部分,但替换了其他语句,这意味着您需要创建一个新的循环,以便复制仍然使用的部分。最好避免重复代码
    • 嗯。。。测试和让多个开发人员同时处理不同的部分会更容易,但前提是循环非常简单。如果您开始调用方法来完成部件(理想情况下是从不同的类中),那么在没有模式的情况下也应该很容易完成
    • 如果你遇到设计模式的创建人并告诉他们你使用了他们的模式,他可能会赞许地向你点头

    不过,老实说,除了最后一点,其他的也可以通过以不同的方式构建围绕循环的代码来实现。再说一次,这正是你使用这种设计模式所要做的;)