Facade mürəkkəb alt sistem qarşısında sadə interfeysdir. Çoxlu sinifləri və çağırışların düzgün sırasını bilmək əvəzinə, müştəri bir-iki yüksək səviyyəli metod çağırır. Alt sistem dəyişmir; facade yalnız onu əlaqələndirir.
Problem: çoxlu hissə və sabit sıra
Ev kinoteatrı işıq, proyektor, gücləndirici və pleyerdən ibarətdir. Filmi başlatmaq üçün dördünün hamısında müəyyən çağırış ardıcıllığı lazımdır. Facade olmasa hər müştəri ardıcıllığı təkrarlayır və hər təkrarda sıranı səhv salmaq olar.
class Lights:
def dim(self, level):
print(f"lights {level}%")
class Projector:
def on(self):
print("projector on")
def off(self):
print("projector off")
class Amp:
def on(self):
print("amp on")
def off(self):
print("amp off")
def volume(self, v):
print(f"amp volume {v}")
class Player:
def play(self, movie):
print(f"playing {movie}")
def stop(self):
print("player stopped")
lights, projector, amp, player = Lights(), Projector(), Amp(), Player()
lights.dim(10) # the client must know all steps and their order
projector.on()
amp.on()
amp.volume(7)
player.play("Dune")lights 10%
projector on
amp on
amp volume 7
playing DuneFacade sinfi
Client HomeTheater-i çağırır, o isə dörd cihaz sinfini əlaqələndirir