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

Строитель (Builder) — шаблон проектирования, который инкапсулирует создание объекта и позволяет разделить его на различные этапы. Когда использовать паттерн Строитель? Когда процесс создания нового объекта не должен зависеть от того, из каких частей этот объект состоит и как эти части…

Читать далее

Прототип (Prototype)

Паттерн Прототип (Prototype) позволяет создавать объекты на основе уже ранее созданных объектов-прототипов. То есть по сути данный паттерн предлагает технику клонирования объектов. Когда использовать Прототип? Когда конкретный тип создаваемого объекта должен определяться динамически во время выполнения Когда нежелательно создание отдельной…

Читать далее

Одиночка (Singleton, Синглтон)

Одиночка (Singleton, Синглтон) — порождающий паттерн, который гарантирует, что для определенного класса будет создан только один объект, а также предоставит к этому объекту точку доступа. Когда надо использовать Синглтон? Когда необходимо, чтобы для класса существовал только один экземпляр Синглтон позволяет…

Читать далее

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

Паттерн «Абстрактная фабрика» (Abstract Factory) предоставляет интерфейс для создания семейств взаимосвязанных объектов с определенными интерфейсами без указания конкретных типов данных объектов. Когда использовать абстрактную фабрику Когда система не должна зависеть от способа создания и компоновки новых объектов Когда создаваемые объекты…

Читать далее

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

Фабричный метод (Factory Method) — это паттерн, который определяет интерфейс для создания объектов некоторого класса, но непосредственное решение о том, объект какого класса создавать происходит в подклассах. То есть паттерн предполагает, что базовый класс делегирует создание объектов классам-наследникам. Когда надо…

Читать далее

Шаблоны игрового проектирования

Паттерны GoF(Банда 4) Порождающие паттерны: Фабричный метод (Factory Method) Фабричный метод (Factory Method) — это паттерн, который определяет интерфейс для создания объектов некоторого класса, но непосредственное решение о том, объект какого класса создавать происходит в подклассах. То есть паттерн предполагает,…

Читать далее

GRASP 

Информационный эксперт (Information Expert) Низкая связанность (Low Coupling) Высокое зацепление (High Cohesion) Устойчивый к изменениям (Protected Variantions) Контроллер (Controller) Полиморфизм (Polymorphism) Чистая выдумка (Pure Fabrication) Перенаправление (Indirection) Создатель (Creator) GRASP (General Responsibility Assignment Software Patterns) — шаблоны проектирования, используемые для решения…

Читать далее

Шаблоны проектирования. Архитектурные шаблоны(MVC, MVP, MVVM, компонентный подход, ECS

Model-View-Controller (MVC, «Модель-Представление-Контроллер», «Модель-Вид-Контроллер») — схема разделения данных приложения и управляющей логики на три отдельных компонента: модель, представление и контроллер — таким образом, что модификация каждого компонента может осуществляться независимо[1]. MVP (Model-View-Presenter) — паттерн разработки пользовательского интерфейса. Шаблон MVP является производным от MVC, но при…

Читать далее

Сложность алгоритма. Big O notation

Big O нотация нужна для описания сложности алгоритмов. Для этого используется понятие времени. Big-O позволяет оценить, насколько время выполнения алгоритма зависит от переданных в него данных. Начнем с самого простого: O(1) Возьмем массив из 5 чисел: Допустим надо получить первый…

Читать далее

Алгоритмы сортировки c#

Алгоритмы сортировки – это популярная тема, на разбор которой в университетах отводится несколько месяцев. Но зачем вообще в 20?? году изучать алгоритмы, если в CLR уже и так встроен и прекрасно работает адаптивный метод Sort() для любых коллекций? А причин…

Читать далее