gpt4 book ai didi

java - 是 java hashcode 和 equals 策略模式的示例

转载 作者:行者123 更新时间:2023-12-02 00:39:06 25 4
gpt4 key购买 nike

如果我们从HashMap的角度来看,变量step就是hashCode和equals的计算。使用 hashCode 和 equals 方法 HashMap 可以改变算法来实现散列。它不能改变的是计算给定类型 T 的对象的 hashCode 和 euals 的策略。基于上述论点,我认为它不符合策略模式的定义。

我说得对吗?

最佳答案

它的实现方式不是策略模式。如果它看起来更像:

class HashMap {
private final HashingStrategy strategy;

private int computeHash(object) {
return strategy.hash(object);
}
}

那么这将是一个策略模式。相反,它更像是:

class HashMap {
private int computeHash(object) {
return object.hashCode();
}
}

为了获取对象的哈希码, HashMap 会向对象询问其哈希码,但它不决定如何计算它。策略模式是当您可以插入各种算法来执行特定步骤时,这更多地将责任委托(delegate)给对象。

关于java - 是 java hashcode 和 equals 策略模式的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18408141/

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