Нужен сам абстрактный класс 'cloak', который позволяет прятать публичные методы и свойства дочерних классов, когда на нужно множественное наследование. К примеру cloak -> A -> B. Допустим в классе А нам нужно объявить ряд публичных методов и свойств. В классе B пользователь может переопределить их. Можно решить эту проблему объявив метод как 'final', но с свойствами проблема нерешаемая.
Шаблон позволяет решить проблему возникающую, когда классу C нужно воспользоваться публичными методами и свойствами класса А, но при этом нужно спрятать эти методы и свойства от класса B.
PHP сказ про то, как некромант инквизитора обманул