3

将来の検証を回避する目的で単純な String オブジェクトのラッパーを返すことは理にかなっていますか?

たとえば、URI は複数の部分 (スキーム、権限、パス、クエリ、およびフラグメント) で構成される単純な文字列です。URI を表すクラスを設計するときに、URI の一部を単純な String オブジェクトとして公開するか、インターフェース IUriCompontent を介して公開することができます。

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 コンポーネントを表しているという前提の下で動作するように渡され、それによって将来の検証の必要性が軽減されます。

4

1 に答える 1