私は、製品の複数のリリースで使用されるライブラリを設計しています。その仕事の一部は、.NET 1.1には存在しない機能の一部を強化することですそれを使用する。おそらくこれの最良の例はString.IsNullOrEmptyメソッドであり、その機能はかなり重く依存しています。.NET 1.1で密閉クラスを拡張するためのクリーン/直感的なアプローチは何ですか?
.NETのStringクラスはシールされています。私は、元の文字列をラップすることによってクラスの機能を拡張するために、アダプターパターンまたはデコレータパターンのいずれかを使用することについて考えましたが、これは私がしようとしていることに対して非常に直感的なアプローチであるとは確信していません。私はまた、同様の質問についてanother post on StackOverflowを見てきましたが、私が先ほど触れた問題を再び提起します。
私は間違いなく私が探している機能を作成するためにアダプタを使用することができますが、私はすべての文字列のためにこれをやって想像することはできません:私は必ずしもこのアプローチを嫌いしないでください
bool isEmpty = new StringExtensionAdapter(myXmlNode.SelectSingleNode(myXpathString)).IsNullOrEmpty();
if (isEmpty)
{
// Do something
}
が、それはそうですこのように、さまざまなソリューションが優れている可能性がある、多くのメモリ管理が行われます。また、私は "StringUtility"ライブラリを作成することに夢中ではありません。そのアプローチは、私が追求したいオブジェクト指向設計からさらに遠ざかります。
すべての入力は役に立ちます。私がちょうど狂っていて、これらのアプローチの1つを使うべきなら、私に知らせてください。私は複数のベストプラクティスを探しています。
私は、アダプタのパターンをお勧めしますし、小さなサンプルを書きたかったけど...あなたがすでにそれを言及したようだ:( –
私は密閉されたクラス、特にシリアライズ可能な密閉されたクラスを嫌いです。1.1以来、SqlDataAdapterを拡張してシリアル化を制限したかったので、醜いマシンで生成されたコードの代わりに、 。 – quillbreaker