返回字符串的包装器以避免将来的验证是否有意义?
本文关键字:验证 将来 是否 有意义 字符串 包装 返回 | 更新日期: 2023-09-27 18:16:41
返回一个简单String对象的包装器以避免将来的验证是否有意义?
例如,URI是由多个部分组成的简单字符串:方案、权限、路径、查询和片段。当设计一个类来表示URI时,我可以将URI的部分公开为简单的String对象,或者可能通过接口iuricomponent。
public interface IUri
{
IUriComponent Scheme { get; set; }
IUriComponent Authority { get; set; }
IUriComponent Path { get; set; }
IUriComponent Query { get; set; }
IUriComponent Fragment { get; set; }
}
public interface IUriComponent
{
String Value { get; }
}
我的想法是,在解析出URI的组件之后,可以将每个组件放入一个不可变的、经过验证的容器中。然后可以在假设其内容表示有效的URI组件的情况下传递此容器,从而减少了将来验证的任何需要。
确实有道理。事实上,URI不是字符串。URI是一个概念,它包括一个方案、一个授权机构等。这些组件和URI本身可以表示为string,这是一种可能实现的实现细节。
如果你让你的URI不可变,你只需要验证它一次,而且你可以免费获得线程安全。
当然,这是否可行或方便也取决于你的应用程序的需求和用例。但我认为,提供一个属性返回URI作为一个字符串应该是足够的。