Sobes.tech
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:

  1. Fasáda (Facade): Poskytuje zjednodušené rozhraní pro podsystém.
  2. 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.