Skip to content

Instantly share code, notes, and snippets.

@chashkovdaniil
chashkovdaniil / chainOfResponsibility.dart
Last active January 30, 2024 20:44
Цепочка обязанностей
/// Паттерн "Цепочка обязанностей"
///
/// Полезно:
/// - Если есть какая-то группа объектов, которая может обработать
/// какой-то запрос (сообщение).
/// - Не важно каким именно объектов из этой группы будет обработано сообщение.
///
/// Принцип - не смог обработать сам, отдай другому.
///
/// Отличие от паттерна RequestHandler:
// ignore_for_file: curly_braces_in_flow_control_structures
/*
* Performance benchmark of different ways to concat strings.
*
* For small string:
* Length: 3000
* StringBuffer: 7 us.
* Concatenation: 38 us.
* Interpolation: 45 us.
void main() {
print(Builder('some_table')
..select(['name']).where('a', '<=', 'b').limit(1)
..insert({'id': 1, 'name': 'First'})
..build(),
);
print(Where('a', '<=', '10', or: Where('b', '>=', '10')).build());
}
@chashkovdaniil
chashkovdaniil / readme.md
Created January 2, 2023 16:40
malevolent-utopia-4407

malevolent-utopia-4407

Created with <3 with dartpad.dev.

@chashkovdaniil
chashkovdaniil / main.dart
Created October 8, 2022 10:51
composite pattern
void main(){
var ellipse = Ellipse();
var triangle = Triangle();
var composite = CompositeGraphic();
ellipse.info();
triangle.info();
composite.add(ellipse);
composite.add(triangle);
composite.info();
@chashkovdaniil
chashkovdaniil / combinations.dart
Last active February 28, 2022 11:58
Combinations
void combination(List<String> list, int n) {
List<int> iList = List.generate(n, (_) => 0);
int max = iList.length - 1;
while (iList.last <= max) {
print(iList.map((e) => list[e])); // здесь берем массив и делаем че хотим
if (iList.last == max) {
if (addDecimal(iList, max)) {
continue;
@chashkovdaniil
chashkovdaniil / oneEditApart.dart
Last active December 23, 2021 08:19
Функция, проверяющая, можно ли получить одну строку из другой менее чем за одно исправление (удаление, добавление, исправление, изменение символа)
void main() {
print(oneEditApart("cat", "cut"));
print(oneEditApart("cat", "dog"));
print(oneEditApart("cat", "cats"));
print(oneEditApart("cat", "act"));
print(oneEditApart("cat", "acts"));
print(oneEditApart("cat", "at"));
print(oneEditApart("cat", "cast"));
}