.Netでは動的呼び出し(リフレクション、C#動的キーワードなど)が可能ですが、C#などの言語を使用する場合、プログラムが正しいことを証明するために静的型付けを使用する必要があると感じることがあります。実行時の入力の問題。
これにより、コンパイラに次のように説明するためだけの料金のインターフェイスまたは基本クラスが導入される場合があります。'はい、このコンテキストに渡すすべてのオブジェクトが理解されることを知っています。 、インターフェース定義を使用してそれを証明します!」(たとえば、.netは内部でIReadChunkBytesインターフェイスを使用して、SteamReadChunkBytesまたはBufferReadChunkBytesオブジェクトを何らかのメソッドに渡すことができます。)
また、クラスや型を作成して、type-yとはあまり役に立たない他の目的を果たすこともあります。たとえば、動作が小さい一意の識別子(列挙型に少し似ています)や、定数のセットを保持するなどです。
このような設計上の決定に直面したときに、コンパイル時間、実行時間、およびその他のコストがどのようになるかをよりよく理解することに興味があります。「この問題を解決するためだけに、新しいタイプまたはインターフェイスを定義する必要がありますか?」明らかに、そのような比較のそれぞれのコストと利益には2つの側面がありますが、一般に、そのような比較/議論のそれぞれで「新しいタイプの定義」に同じコストが見られることを願っています。これらのコストをどのように定量化しますか?