„Homlokzat programtervezési minta” változatai közötti eltérés
[ellenőrzött változat] | [ellenőrzött változat] |
Tartalom törölve Tartalom hozzáadva
a + ruby source tag, magyarázat |
|||
4. sor:
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
10 ⟶ 11 sor:
== 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
40 ⟶ 42 sor:
}}</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"
|-
48 ⟶ 51 sor:
| [[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]]
▲: 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.
▲: 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 */
115 ⟶ 122 sor:
}
</source>
=== Ruby ===
<source lang="ruby">
# Bonyolult részek
class CPU
def freeze; end
132 ⟶ 143 sor:
# Homlokzat
class ComputerFacade
149 ⟶ 161 sor:
# 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
220 ⟶ 237 sor:
==== Példa kód ====
<source lang=CSharp>
namespace DesignPattern.Facade.Sample
304 ⟶ 322 sor:
</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}}
|