Комментарии: Что такое метаклассы в perl? Использование Class::MOP https://dev-lab.info/2013/01/%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%bc%d0%b5%d1%82%d0%b0%d0%ba%d0%bb%d0%b0%d1%81%d1%81%d1%8b-%d0%b2-perl-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8/ Mon, 26 Jun 2017 09:23:56 +0000 hourly 1 https://wordpress.org/?v=4.8.12 Автор: www2 https://dev-lab.info/2013/01/%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%bc%d0%b5%d1%82%d0%b0%d0%ba%d0%bb%d0%b0%d1%81%d1%81%d1%8b-%d0%b2-perl-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8/#comment-4932 Sun, 12 May 2013 15:30:26 +0000 https://dev-lab.info/?p=691#comment-4932 На мой взгляд, одна из целей всяких дополнительных реализаций объектных систем в Perl - это получение большего контроля над большой системой. Можно запретить программистам изменять некий аттрибут или допускать хранение в этом аттрибуте только чисел и т.п. Если в процессе работы программы произойдёт попытка сделать недопустимое - об это узнают до того, как проблема проявится где-то позже и более сложным образом.

Другая цель - это придание программе возможности к саморефлексии. Дать программе возможность получать информацию о каком-то объекте - поддерживается ли определённый метод, какие методы есть, можно ли в них писать и т.п. Это позволяет делать программы более динамичными и гибкими, т.к. благодаря этому становится меньше хардкода. В маленьких программах это может быть не столь важно, потому что программист может удержать в голове все эти знания и при необходимости перепроектировать программу, в больших - приобретает важность.

]]>