Sobes.tech
Middle

Kas yra dizaino modeliai?

sobes.tech AI

Atsakymas iš AI

Dizaino šablonai (patternai) yra standartiniai, daugkartinio patikrinimo sprendimai dažnai pasitaikančioms projektavimo problemoms objektinio programavimo srityje. Jie nėra paruoštos naudoti bibliotekos ar karkasai, o koncepcijos arba "receptai", kuriuos galima pritaikyti konkrečiam uždaviniui.

Šablonai sutelkiami į santykius tarp klasių ir objektų. Jie skirstomi į tris pagrindines kategorijas:

  • Kūrimo (Creational): Objektų kūrimo šablonai:
    • Factory Method (Fabriko metodas)
    • Abstract Factory (Abstrakti fabrikas)
    • Singleton (Vienintelis)
    • Builder (Konstruktorius)
    • Prototype (Prototipas)
  • Struktūriniai (Structural): Klasių ir objektų organizavimo šablonai didesnėse struktūrose:
    • Adapter (Adapteris)
    • Bridge (Tiltas)
    • Composite (Sudėtinis)
    • Decorator (Dekoratorius)
    • Facade (Fasadas)
    • Flyweight (Lėkštas svoris)
    • Proxy (Proksis)
  • Elgsenos (Behavioral): Algoritmų ir sąveikos tarp klasių ir objektų būdų šablonai:
    • Chain of Responsibility (Atsakomybės grandinė)
    • Command (Komanda)
    • Iterator (Iteratoriaus)
    • Mediator (Tarpininkas)
    • Memento (Memento)
    • Observer (Stebėtojas)
    • State (Būsena)
    • Strategy (Strategija)
    • Template Method (Šablono metodas)
    • Visitor (Lankytojas)

Dizaino šablonų taikymas leidžia kurti lankstesnį, išplečiamesnį ir palaikomą kodą, gerinti jo skaitomumą ir supaprastinti bendradarbiavimą projekte.

Pavyzdžiui, Singleton šablonas užtikrina, kad klasėje yra tik vienas egzempliorius, ir suteikia jam globalų prieigą:

// Singleton pavyzdys Java
class Singleton {
    private static Singleton instance; // Vienintelis egzempliorius

    private Singleton() {
        // Privatus konstruktorius, kad būtų išvengta naujų egzempliorių kūrimo
    }

    public static Singleton getInstance() {
        if (instance == null) { // Egzemplioriaus sukūrimas pirmo kvietimo metu
            instance = new Singleton();
        }
        return instance; // Grąžinti vienintelį egzempliorių
    }

    public void showMessage() {
        System.out.println("Sveiki iš Singleton!");
    }
}