0

Или мой интерфейс новый «глобальный»? Я пытаюсь найти способ избавиться от таких утверждений, как:Помогает ли программирование интерфейсу избавиться от глобальных переменных?

До сих пор я только придумываю интерфейсы. Я думаю, что мой код будет немного слабее, может быть, много. Но если бы я действительно хотел свободно соединиться после реализации интерфейса (или расширения класса), не мог ли я всегда создавать еще один уровень абстракции между интерфейсом и наследующими классами с другим абстрактным классом или интерфейсом?

Как я могу начать избавляться от глобальных переменных, кроме как переписать весь проект?

+0

На каком языке? – Laurel

+0

Язык для этого вопроса - php. – johnny

+2

Я не вижу, как связаны глобальные и интерфейсные ... Глобалы - это плохой способ обмена данными, есть и другие (более безопасные) способы обмена данными - какой из них вам подходит, зависит от вашего прецедента. – alfasin

ответ

1

Избавление от глобальных переменных очень просто и не требует введения интерфейса (или даже классов). Если у вас есть код представлены:

function someFunction() 
{ 
    global $var1, $var3, $var4; 
    // ... 

то вам просто необходимо заменить его:

function someFunction($var1, $var3, $var4) 
{ 
    // ... 

и сделано. Нет глобальных координат;)

EDIT Вам придется переписать весь проект. Замена глобальных переменных, например. статические переменные на самом деле не повысят качество вашего кода. Это глобальный, только в различной форме.