Другой парень из нашей команды предоставил мне библиотеку в качестве баночки для своего веб-фреймворка.Давайте назовем этот фреймворк «фреймворк моего друга».
Из его фреймворка мне нужен определенный класс.Половина свойств, предоставляемых этим классом, - это то, что мне действительно нужно для моего собственного приложения.Другая половина не нужна.Чтобы получить свойства этого класса, вам нужно выполнить некоторые манипуляции со строками.Поскольку я буду разрабатывать свой собственный фреймворк поверх этого класса, я хочу максимально развязать зависимость.Возможно, в будущем другой мой друг разработает лучшую среду.
Итак, я создал класс фасада для этого класса.Моя собственная структура обращается к свойствам через мой класс фасадов.Если «Структура моего друга» изменилась, мне просто нужно изменить один класс фасада, а остальное остается прежним.Кроме того, манипулирование String выполняется внутри класса фасадов.Кроме того, класс фасадов предоставляет только необходимые свойства.Так что мой собственный фреймворк просто обращается к свойствам как обычный getter / setter.
Однако у меня был спор с этим парнем.Он заставляет меня использовать свой класс напрямую, так как сначала он никогда не изменит реализацию своего класса.Поэтому он говорит мне, что написание класса фасадов действительно не имеет значения.Но я не согласен.
Я не прав?Хотя я верю, что я прав.