Одиночка (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() для любых коллекций? А причин…

Читать далее

Hashtable и коллизии

Хеш-таблица (hashtable) — это структура данных, представляющая собой специальным образом организованный набор элементов хранимых данных. Все данные хранятся в виде пар «ключ-значение». Данная структура похожа на словарь (map), но имеет особенности такие как применение хеш-функции для увеличения скорости поиска. Принцип работы…

Читать далее

В чем разница между array и List?

Хотя в языке C# есть массивы, которые хранят в себе наборы однотипных объектов, но работать с ними не всегда удобно. Например, массив хранит фиксированное количество объектов, однако что если мы заранее не знаем, сколько нам потребуется объектов. И в этом…

Читать далее