Как добавить метод уже существующему объекту?

  • Автор темы Автор темы Olsufr
  • Дата начала Дата начала

Olsufr

Guest
Как добавить метод уже существующему объекту?

Подскажите, можно ли добавить (или переопределить) метод уже существующему объекту?
 
наследовать класс от класса этого объекта и его инстансировать.
но изврат это полный (если именно про объекты а не классы идет речь) и потому в детали даже вдаваться не буду :)
 
Автор оригинала: Profic
наследовать класс от класса этого объекта и его инстансировать.
но изврат это полный (если именно про объекты а не классы идет речь) и потому в детали даже вдаваться не буду :)
Понятно, что это изврат.

"наследовать класс от класса этого объекта и его инстансировать"
Спасибо. Profic, a как делается это инстансирование?
 
;) инстанцирование - создание объекта класса

может тебе лучше перестать этого хотеть и почитать какую-нибудь умную книжку про ООП?
 
"инстансирование" - это создание экземпляра класса.

я все равное не понимаю ЗАЧЕМ нужен такой изврат.
и пока не получу ВНЯТНЫЙ ответ продолжать про свой изврат не буду.
 
ok, исповедь "извращенца" :)

пишется модуль в рамках уже существующей системы классов, объектов. И мне нехватает функциональности уже существующих методов опредленного объекта. И вот, чтобы сохранить объектный стиль программирования и хочу добавить метод к объекту.
 
ха, так это тебе к классу надо добавить метод. ну раз ты этого не знаешьб то точно читай умную книжку.
 
Автор оригинала: jer
ха, так это тебе к классу надо добавить метод. ну раз ты этого не знаешьб то точно читай умную книжку.
Да не к классу, а к объекту.
Объект я получаю уже готовым (через функцию) и с ним уже надо мне работать.
 
и что мешает сделать еще один класс - наследник от искомого и изменить функцию чтобы она возвращала объект нужного класса?
 
Автор оригинала: Profic
и что мешает сделать еще один класс - наследник от искомого и изменить функцию чтобы она возвращала объект нужного класса?
Функция не возвращает ничего: объект передается по ссылке, а потом уже вне моей функции (методе) данные объекта сохраняются в базе данных.
На момент получения объекта моей функцией он содержит данные, к которым я добавляю еще свои и все это, как уже сказал, потом сохраняется в базе данных.
 
в общем забей
все равно не сделаешь - используй функции
 
НЕ БУДУ
1) это криво
2) это очень криво
3) нет гарантии, что вообще заработает
4) это совсем криво
5) если вы все же есть желание этим воспользоваться - см. пункты 1-4.
 
Olsufr
хех, уговорил, но я все-равно озвучу только саму идею. ибо дальше ее обсуждать все равно нет смысла - кривизна кривезн :)
через eval. т.е. узнаем имя класса, создаем его потомок и заменяем его экземпляром родитель.

про все "но", "если" и т.п. сам догадаешься?
 
Всем спасибо за ответы.

Profic, буду экспериментировать, спасибо за идею.
 
Сверху