当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《你如何处理具有结构的字符串?》经验,为你挑选了1个好方法。

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

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

person.setEmailAddress(0)然后,调用会产生类型错误,但调用person.setEmailAddress("asdf")不会 - 尽管"asdf"绝不是有效的电子邮件地址.

根据我的经验,所谓的字符串几乎不是任意字符序列,对长度或格式没有限制.我想到了URI - 街道地址和电话号码一样,名字也一样......你明白了.然而,这些数据类型通常存储为"只是字符串".

回到我的个人目标,假设我修改setEmailAddress(),像这样

setEmailAddress(EmailAddress emailAddress)
    // ...

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

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

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

谢谢.



1> Morendil..:

"具有结构的字符串"是常见代码气味" 原始痴迷 " 的症状.

补救措施是密切关注验证或操纵这些结构部分的代码中的重复.在重复的第一个提示 - 但不是之前 - 提取一个封装结构的类,并在那里找到验证和查询.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有