Шаблон Singleton

Опубликовал read-php в 23.05.2012 Категория: Генерация объектов ООП

Глобальная переменная — это один из самых больших источников проблем для программиста, использующего ООП. Причины этого к настоящему моменту уже должны быть вам понятны. Глобальные переменные привязывают классы к их контексту, подрывая основы инкапсуляции . Если в классе используется глобальная переменная, то его невозможно извлечь из одного приложения и применить в другом, не убедившись сначала, что в новом приложении определяются такие же глобальные переменные.

Незащищенная природа глобальных переменных может стать причиной серьезных проблем, хотя их и удобно использовать. Как только вы начнете зависеть от глобальных переменных, это только вопрос времени — когда в одной из библиотек будет объявлена глобальная переменная, которая окажется в конфликте с другой глобальной переменной, объявленной где-то в другом месте. Мы уже видели, что РНР уязвим к конфликтам между именами классов, но это гораздо хуже. РНР не предупредит вас, когда произойдет конфликт глобальных переменных. Вы узнаете об этом только тогда, когда сценарий начнет вести себя не так, как обычно. А еще хуже, если вы вообще не заметите никаких проблем при разработке кода. Но, используя глобальные переменные, вы потенциально оставляете пользователей наедине с угрозой новых конфликтов, когда они попытаются использовать вашу библиотеку наряду с другими.

Но искушение использовать глобальные переменные все равно остается. Причина в том, что бывают случаи, когда недостатки глобальных переменных— это цена, которую стоит заплатить за то, чтобы предоставить всем классам доступ к объекту.

P.S. Теперь элитная косметика Holy Land доступна и в России. Благодаря применению новейших разработок holy land косметика это действительно качественный продукт.

Комментариев нет

Добавить комментарий