2015-09-17 4 views

ответ

2

Одним из недостатков использования глобальных методов может быть то, что они могут быть вызваны без явного указания объекта (только foo(), а не global.foo()), и это подвержено ошибкам. Например, если ваша структура имеет свой собственный метод с тем же именем, такой вызов рассматривается как вызов метода struct, а не глобального метода.

Говоря в целом, одним из принципов объектно-ориентированного программирования является то, что функции (методы) относятся к некоторому объекту/классу, а не к глобальным.

1

Вместо этого я рекомендую использовать sn_utils. Это также одноэлементный как global, но заставляет вас использовать его имя экземпляра: utils.foo(). Вы должны быть уверены, что не загрязняете свое пространство имен, например. использование <evc-name>_foo() как способ name.