典型的な継承を使用せずに、クラスまたはそのメソッドの一部を再定義する方法はありますか? 例えば:
class third_party_library {
function buggy_function() {
return 'bad result';
}
function other_functions(){
return 'blah';
}
}
を置き換えるにはどうすればよいbuggy_function()
ですか? 明らかにこれは私がやりたいことです
class third_party_library redefines third_party_library{
function buggy_function() {
return 'good result';
}
function other_functions(){
return 'blah';
}
}
これは私の正確なジレンマです。コードを壊すサードパーティのライブラリを更新しました。将来の更新でコードが再び壊れる可能性があるため、ライブラリを直接変更したくありません。クラスメソッドをシームレスに置き換える方法を探しています。
それができると言っているこのライブラリを見つけましたが、4歳なので警戒しています。
編集:
フレームワークの制限により、クラスの名前をthird_party_library
toなどに変更できないことを明確にする必要がありました。magical_third_party_library
私の目的のために、クラスに関数を追加することは可能でしょうか? 「部分クラス」と呼ばれるものを使用して、C# でこれを行うことができると思います。