„Homlokzat programtervezési minta” változatai közötti eltérés

a
+ ruby source tag, magyarázat
a (+ ruby source tag, magyarázat)
 
A homlokzat képes:
 
* egy [[programkönyvtár|szoftverkönyvtár]] használatát, megértését és tesztelését megkönnyíteni, habár a homlokzat kényelmes módszer általános feladatokra
* egy könyvtárat olvashatóbbá tenni, ugyanazon okok miatt
 
== Használata ==
 
A Homlokzatot akkor használják, amikor valaki egy könnyebb vagy leegyszerűsített interfészt szeretne egy alatta lévő megvalósítási objektumhoz.<ref>{{cite journal
| last1 = Freeman
}}</ref>
Máskor az [[Adapter programtervezési minta|adapter]] használható, ha a becsomagolónak figyelnie kell egy kitüntetett interfészre, és támogatnia kell a [[Többalakúság (számítástudomány)|többalakú]] viselkedést. A [[Díszítő programtervezési minta|díszítő]] lehetővé teszi, hogy hozzáadjunk, vagy módosítsuk egy interfész viselkedését futás időben.
 
{| class="wikitable"
|-
| [[Díszítő programtervezési minta|Díszítő]] || Dinamikusan felelősségeket ad hozzá az interfészhez becsomagolva az eredeti kódot
|-
| Homlokzat || Leegyszerűsített interfészt nyújt
|}
 
Homlokzatot használnak, ha:
 
* le kell egyszerűsíteni a hozzáférést egy komplex rendszerhez
* a rendszer nagyon bo9nyolult vagy nehezen elérhető
* a rétegzett szoftver minden egyes rétegéhez kell belépési pont
* az absztrakciók és az implementációk között törékeny összefüggés van
 
== Struktúra ==
 
* Csomagok (angolul ''packages''): Egymástól függetlenül tervezett programcsomagok, amiket egy egységes rendszerben kell használni.
* Homlokzat (angolul ''facade''): A homlokzat osztály az 1-es, 2-es és 3-as csomagok egy absztrakcióját nyújtja, és elválasztja ezeket az alkalmazás többi részéből.
* Ügyfelek (angolul ''clients''): Az objektumok a Homlokzat mintát használják az erőforrások a csomagokból való eléréséhez.
 
[[Image:FacadeDesignPattern.png]]
; Homlokzat (angolul ''facade'')
: A homlokzat osztály az 1-es, 2-es és 3-as csomagok egy absztrakcióját nyújtja, és elválasztja ezeket az alkalmazás többi részéből.
; Ügyfelek (angolul ''clients'')
: Az objektumok a Homlokzat mintát használják az erőforrások a csomagokból való eléréséhez.
 
== Példák ==
 
Absztrakt példa arra, hogy a kliens ("te") hogy tud használni egy homlokzat ("számítógép") segítségével egy bonyolult rendszert (belső számítógép részek, mint pl. a processzor v. a merevlemezek).
 
=== Java ===
 
<source lang="java">
/* Bonyolult részek */
}
</source>
 
=== Ruby ===
 
<source lang="ruby">
# Bonyolult részek
 
class CPU
def freeze; end
 
# Homlokzat
 
class ComputerFacade
 
 
# Kliens
 
computer_facade = ComputerFacade.new
computer_facade.start
</source>
 
=== C# ===
 
További példák C#-ban:
 
==== Absztrakt minta ====
 
<source lang=CSharp>
namespace DesignPattern.Facade
 
==== Példa kód ====
 
<source lang=CSharp>
namespace DesignPattern.Facade.Sample
</source>
 
== Jegyzetek ==
{{jegyzetek}}
 
== További információk ==
{{wikibooks|Computer Science Design Patterns/Facade|Homlokzat programtervezési minta|en}}
 
* [http://c2.com/cgi/wiki?FacadePattern Description from the Portland Pattern Repository]
 
== Fordítás ==
{{fordítás|en|Facade pattern}}