我有一个场景,我将3个参数发送到外部服务并期望得到结果。我想找到一种优雅的方法来缓存结果。
问题是3个参数之间有层次结构。类似的东西:
我希望能够在比#34; City"更低的级别上使用通配符进行缓存。例如:
仅使用普通对象' *'标记通配符会导致有很多" if" s以检查条件。我考虑过覆盖equals
和toString
方法,但我无法找到正确的方法。
答案 0 :(得分:1)
老实说,我认为尝试将此作为简单的字符串会对N度感到痛苦。
我建议采用不同的解决方案。
不是Java开发人员,我不能给你准确的语法,但P代码应该足够接近。
class Address {
// Properties.
City: string,
Street: string,
Building: string
}
class Addresses {
Add: List<Address>
public bool GetHit(city, street, building) {
foreach(var add in Add) {
if (add.city == city) && (add.street == street) && (add.building == building) {
return true;
}
}
return false;
}
public bool GetHitByKey(city, street, building) {
// First, check to see if there is a wildcard on the street
if GetHit(city, "*", building) {
return true;
}
if GetHit(city, "*", "*") {
return true;
}
return GetHit(city, street, building);
}
}
<强> TODO:强>