Линейная алгебра и мат. Статистика



бет39/49
Дата09.01.2023
өлшемі294.26 Kb.
#468247
1   ...   35   36   37   38   39   40   41   42   ...   49
Вопросы Big Data

Порождающие паттерны
Это паттерны, которые создают объекты, или позволяют получить доступ к существующим. Порождающие паттерны — это паттерны, которые абстрагируют процесс порождения классов и объектов. Среди них выделяются следующие:

  • Абстрактная фабрика (Abstract Factory)

  • Строитель (Builder)

  • Фабричный метод (Factory Method)

  • Прототип (Prototype)

  • Одиночка (Singleton)

Структурные паттерны
Другая группа паттернов — структурные паттернырассматривает, как классы и объекты образуют более крупные структуры — более сложные по характеру классы и объекты. К таким шаблонам относятся:

  • Адаптер (Adapter)

  • Мост (Bridge)

  • Компоновщик (Composite)

  • Декоратор (Decorator)

  • Фасад (Facade)

  • Приспособленец (Flyweight)

  • Заместитель (Proxy)

Поведенческие паттерны
Третья группа паттернов называются поведенческими — они определяют алгоритмы и взаимодействие между классами и объектами, то есть их поведение. Среди подобных шаблонов можно выделить следующие:

  • Цепочка обязанностей (Chain of responsibility)

  • Команда (Command)

  • Интерпретатор (Interpreter)

  • Итератор (Iterator)

  • Посредник (Mediator)

  • Хранитель (Memento)

  • Наблюдатель (Observer

  • Состояние (State)

  • Стратегия (Strategy)

  • Шаблонный метод (Template method)

  • Посетитель (Visitor)

Выбор паттерна
Прежде всего при решении какой-нибудь проблемы надо выделить все используемые сущности и связи между ними и абстрагировать их от конкретной ситуации. Затем надо посмотреть, вписывается ли абстрактная форма решения задачи в определенный паттерн. Причем лучше не сразу взять какой-то определенный паттерн — первый, который показался нужным, а посмотреть на несколько родственных паттернов из одной группы, которые решают одну и ту же задачу.
При этом важно понимать смысл и назначение паттерна, явно представлять его абстрактную организацию и его возможные конкретные реализации. Один паттерн может иметь различные реализации, и чем чаще вы будете сталкиваться с этими реализациями, тем лучше вы будете понимать смысл паттерна. Но не стоит использовать паттерн, если вы его не понимаете, даже если он на первый взгляд поможет вам в решении задачи.
И в конечном счете надо придерживаться принципа KISS (Keep It Simple, Stupid) — сохранять код программы по возможности простым и ясным. Ведь смысл паттернов не в усложнении кода программы, а наоборот в его упрощении.

  1. Параллелизм. Закон Амдала. Классификация параллельных вычислительных систем. Распараллеливание алгоритмов.

Эффективный способ повышения производительности компьютера специалисты видят в использовании параллелизма. Однако на практике основные усилия разработчиков сосредоточены на создании все более быстродействующих однопроцессорных машин. Сейчас, когда дальнейшее совершенствование процессоров последовательного действия связано с серьезными технологическими трудностями, параллелизм, возможно, остается единственным способом повышения эффективности вычислений. К сожалению, на этом пути возникают новые проблемы — касающиеся организации вычислительной системы.
Уровни параллелизма
Методы и средства реализации параллелизма зависят от того, на каком уровне он должен обеспечиваться. Обычно различают следующие уровни параллелизма:
1   ...   35   36   37   38   39   40   41   42   ...   49




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет