gpt4 book ai didi

string - 你如何处理有结构的字符串?

转载 作者:行者123 更新时间:2023-12-04 16:41:55 25 4
gpt4 key购买 nike

假设我有一个代表一个人的对象,该对象具有该人电子邮件地址的 getter 和 setter 方法。 setter 方法定义可能如下所示:

setEmailAddress(String emailAddress)
{
this.emailAddress = emailAddress;
}

调用 person.setEmailAddress(0) ,然后,会产生一个类型错误,但调用 person.setEmailAddress("asdf")不会 - 即使“asdf”绝不是有效的电子邮件地址。

根据我的经验,所谓的字符串几乎从来都不是任意的字符序列,对长度或格式没有限制。 URI 浮现在脑海中——街道地址、电话号码、名字……你明白了。然而,这些数据类型最常存储为“只是字符串”。

回到我的 person 对象,假设我修改了 setEmailAddress()像这样
setEmailAddress(EmailAddress emailAddress)
// ...

哪里 EmailAddress是一个类......其构造函数采用电子邮件地址的字符串表示形式。我有什么收获吗?

好的,所以电子邮件地址是一个不好的例子。一个 URI 类将 URI 的字符串表示作为构造函数参数,并提供管理该 URI 的方法 - 设置路径、获取查询参数等。源字符串的有效性变得很重要。

所以我问你们,你们如何处理有结构的字符串?您如何在界面中明确您的结构期望?

谢谢你。

最佳答案

“具有结构的字符串”是常见代码异味“Primitive Obsession”的症状。

补救措施是密切注意验证或操作这些结构部分的代码中的重复。在第一次出现重复时——但不是之前——提取一个封装结构的类并在那里定位验证和查询。

关于string - 你如何处理有结构的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/530522/

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