10
すべての型を定義する必要がありますか?
最近、コードの可読性に問題が生じました。 操作を実行し、将来の参照のためにこの操作のIDを表す文字列を返す関数がありました(WindowsのOpenFileがハンドルを返すようなものです)。ユーザーは後でこのIDを使用して、操作を開始し、その終了を監視します。 相互運用性の問題のため、IDはランダムな文字列である必要がありました。これにより、次のような非常に不明確なシグネチャを持つメソッドが作成されました。 public string CreateNewThing() これにより、戻り型の意図が不明確になります。この文字列を、次のように意味を明確にする別の型でラップすると思いました。 public OperationIdentifier CreateNewThing() タイプには文字列のみが含まれ、この文字列が使用されるたびに使用されます。 この操作方法の利点は、型の安全性と明確な意図であることは明らかですが、より多くのコードとあまり慣用的ではないコードも作成します。一方で、私は追加された安全性が好きですが、それはまた多くの混乱を作成します。 安全上の理由から、クラスで単純型をラップすることは良い習慣だと思いますか?
141
type-systems