Есть ли способ переопределить класс или некоторые его методы, не используя типичное наследование? Например:
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 года.
EDIT:
Я должен был уточнить, что я не могу переименовать класс из third_party_library
в magical_third_party_library
или что-то еще из-за ограничений рамки.
В моих целях можно было бы просто добавить функцию в класс? Я думаю, вы можете сделать это в С# с чем-то, называемым "частичным классом".