Middle
Znáte vzor Facade?
sobes.tech AI
Odpověď od AI
Ano, znám to. Je to strukturální návrhový vzor, který poskytuje sjednocené rozhraní k sadě rozhraní v podsystému. Definuje rozhraní na vysoké úrovni, které činí použití podsystému jednodušším.
Cíl:
- Zjednodušit používání složitého podsystému.
- Snížit závislost mezi klientem a implementací podsystému.
- Zajistit slabé propojení.
Hlavní komponenty:
- Fasáda (Facade): Poskytuje zjednodušené rozhraní pro podsystém.
- Třídy podsystému: Implementují funkčnost podsystému, na kterou odkazuje fasáda.
Použití v Androidu:
- Správa přístupu ke složitým API (například práce s médii, souborovým systémem, sítí), obalením do jednoduššího rozhraní.
- Vytvoření jednotného vstupního bodu pro provádění skupiny souvisejících operací.
// Příklad zjednodušené fasády pro práci s nastaveními
class SettingsFacade(private val sharedPreferences: SharedPreferences) {
fun saveStringSetting(key: String, value: String) {
sharedPreferences.edit().putString(key, value).apply()
}
fun getStringSetting(key: String, defaultValue: String): String {
return sharedPreferences.getString(key, defaultValue) ?: defaultValue
}
// Mohou být metody pro jiné typy dat a nastavení
}
Výhody:
- Zjednodušuje klientský kód, skrývá složitost podsystému.
- Zajišťuje slabé propojení mezi klientem a třídami podsystému.
- Zlepšuje čitelnost a udržovatelnost kódu.
Nevýhody:
- Může se stát "těžkým", pokud fasáda pokrývá příliš mnoho funkcionalit podsystému.
- Nebrání přímému přístupu ke třídám podsystému, pokud je klient chce používat přímo.