Facade is een structureel ontwerppatroon dat een vereenvoudigde interface biedt voor een bibliotheek, een raamwerk of een andere complexe reeks klassen. Gevelpatroon verbergt de complexiteit van het systeem en biedt een interface naar de klant waarmee de klant toegang heeft tot het systeem. Dit type ontwerppatroon valt onder een structureel patroon omdat dit patroon een interface toevoegt aan het bestaande systeem om de complexiteit ervan te verbergen. Simpel gezegd, een gevel omvat een complex subsysteem achter een eenvoudige interface.
Het verbergt veel van de complexiteit en maakt het subsysteem gebruiksvriendelijk. Gevelpatroon is vaak nodig wanneer er een groot aantal onderling afhankelijke klassen is of omdat delen van de code niet beschikbaar zijn. Het wordt gebruikt als camouflage om de complexiteit van een groot systeem te dekken en biedt daarom een eenvoudige interface voor de klant. Met andere woorden, het is een wrapper-klasse die wordt gebruikt om de implementatiedetails te verbergen.
Wat is een gevelontwerppatroon op Java? Gevelontwerppatroon is een veelgebruikt softwareontwerppatroon dat wordt gebruikt om systemen te structureren op een manier die helpt bij het verminderen van complexiteit. Het is een eenvoudig patroon dat deel uitmaakt van het structurele ontwerppatroon. Structurele ontwerppatronen hebben betrekking op klasse- en objectsamenstelling om grotere structuren te vormen. Het gebruikt een basispijler van objectgeoriënteerd paradigma, overerving, om implementaties samen te stellen.
Gevelontwerppatroon is niet anders en het toont een manier om afzonderlijke objecten een heel subsysteem te laten vertegenwoordigen. Dit ontwerppatroon legt een object bloot dat de verantwoordelijkheid op zich neemt om berichten door te sturen naar de objecten die het vertegenwoordigt. Vlieggewicht laat zien hoe je veel kleine objecten kunt maken, terwijl Facade laat zien hoe je een enkel object kunt maken dat een heel subsysteem vertegenwoordigt. Wanneer u een winkel belt om een telefonische bestelling te plaatsen, is een operator uw gevel voor alle diensten en afdelingen van de winkel.
Het is zo gemakkelijk voor de klant om een Facade-instantie te kunnen maken en een functie aan te roepen om zijn werk te doen. Dit is een abstract voorbeeld van hoe een client (jij) met een gevel (de computer) omgaat met een complex systeem (interne computeronderdelen, zoals CPU en HardDrive). Daarom dient het menu als gevel om het de klant gemakkelijker te maken door de complexiteit die uit de keuken komt of zelfs de taken die de ober tijdens dit proces krijgt toegewezen, te vermijden. Evenzo kan een Facade een vereenvoudigde interface bieden voor een enkele klasse met een zeer complexe interface.
De gevel moet verantwoordelijk zijn voor het initialiseren van het subsysteem en het beheer van de verdere levenscyclus, tenzij de clientcode dit al doet. Een gevelpatroon zegt dat het gewoon een uniforme en vereenvoudigde interface biedt voor een reeks interfaces in een subsysteem, daarom verbergt het de complexiteit van het subsysteem voor de klant. Abstract Factory kan als alternatief voor Facade dienen als u alleen de manier waarop de subsysteemobjecten worden gemaakt op basis van de clientcode wilt verbergen. Gebruik het gevelpatroon wanneer u een beperkte maar eenvoudige interface met een complex subsysteem nodig hebt.
U kunt de koppeling tussen meerdere subsystemen verminderen door ze alleen via gevels te laten communiceren. Facade definieert een nieuwe interface voor bestaande objecten, terwijl Adapter probeert de bestaande interface bruikbaar te maken.