Sobes.tech
Middle

Poznáte vzor Facade?

sobes.tech AI

Odpoveď od AI

Áno, poznám to. Je to štruktúrny návrhový vzor, ktorý poskytuje zjednotený rozhranie pre sadu rozhraní v podsystéme. Definuje rozhranie na vysokej úrovni, ktoré uľahčuje používanie podsystému.

Cieľ:

  • Zjednodušiť používanie zloženého podsystému.
  • Znížiť závislosť medzi klientom a implementáciou podsystému.
  • Zabezpečiť slabé prepojenie.

Hlavné komponenty:

  1. Fasáda (Facade): Poskytuje zjednodušené rozhranie pre podsystém.
  2. Triedy podsystému: Implementujú funkčnosť podsystému, na ktorú sa odvoláva fasáda.

Použitie v Androide:

  • Správa prístupu ku komplexným API (napríklad práca s médiami, súborovým systémom, sieťou), zabalí ich do jednoduchšieho rozhrania.
  • Vytvorenie jednotného vstupného bodu na vykonanie skupiny súvisiacich operácií.
// Príklad zjednodušenej fasády pre prácu s nastaveniami
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
    }

    // Môžu byť metódy pre iné typy dát a nastavenia
}

Výhody:

  • Zjednodušuje klientsky kód, skrýva zložitosť podsystému.
  • Zabezpečuje slabé prepojenie medzi klientom a triedami podsystému.
  • Zlepšuje čitateľnosť a udržiavateľnosť kódu.

Nevýhody:

  • Môže sa stať "ťažkým", ak fasáda sa snaží pokryť príliš veľa funkcií podsystému.
  • Nezabraňuje priamej prístupu ku triedam podsystému, ak ich klient chce použiť priamo.