Sobes.tech
Middle
160

¿Qué patrones de diseño conoces? Cuéntame sobre Proxy, Factory, Strategy.

Empresas donde se preguntó
Небольшая компания

Respuesta de la IA

sobes.tech AI

Вот краткое описание трёх паттернов проектирования:

  • Proxy (Заместитель) — объект, который контролирует доступ к другому объекту, добавляя дополнительную логику (например, ленивую инициализацию, кэширование, контроль доступа).

    Пример: прокси для ленивой загрузки ресурса.

  • Factory (Фабрика) — паттерн для создания объектов без указания конкретного класса создаваемого объекта. Позволяет создавать объекты через общий интерфейс.

    Пример: фабрика, создающая разные виды документов по типу.

  • Strategy (Стратегия) — паттерн, позволяющий выбирать алгоритм поведения во время выполнения, инкапсулируя разные алгоритмы в отдельные классы.

    Пример: разные алгоритмы сортировки, выбираемые в зависимости от данных.

Пример Proxy на Java:

interface Image {
    void display();
}

class RealImage implements Image {
    private String filename;
    RealImage(String filename) { this.filename = filename; loadFromDisk(); }
    void loadFromDisk() { System.out.println("Loading " + filename); }
    public void display() { System.out.println("Displaying " + filename); }
}

class ProxyImage implements Image {
    private RealImage realImage;
    private String filename;
    ProxyImage(String filename) { this.filename = filename; }
    public void display() {
        if (realImage == null) {
            realImage = new RealImage(filename);
        }
        realImage.display();
    }
}

Такой прокси откладывает загрузку изображения до момента вызова display().