Gordon from Blumberg

+151
с 12.07.2024

Люблю программировать и играть в игры. Моя группа VK: https://vk.com/gordon_from_blumberg_workshop Мой канал в ТГ: https://t.me/gordon_from_blumberg_workshop

0 подписчиков
9 подписок

Ох, красиво написано) Надо допройти, а забросил пару лет назад, уже даже не помню, из-за чего)

2

Да, скорее всего) Но нейронные связи в мозгу, которые появятся при самостоятельной реализации алгоритмов, пригодятся) И не только в разработке игр)

Да, рабочие задачи скучные) На бэке все упирается в "возьми данные из базы или интеграции и отдай клиенту, а потом обратно")

Круто, молодец! Я в первый раз тоже мозги поломал) Зато впоследствии нарешал кучу задач на codingame.com, в некоторых пригодился поиск пути)

1

А как научиться алгоритмам, если всегда готовые брать?)

И потом каждый раз смотреть, как он грустно сидит на скамейке :D

1

С удовольствием прошел все 4 кампании) И даже тут опубликовал пост с впечатлениями) Жду обещанных дополнений с новыми кампаниями)

1

Как раз ее нарушением будет вынос логики, необходимой родительскому классу, в отдельный. А вложенный - это все еще часть родительского класса, более того, сам по себе инкапсулирующий часть функционала. Правда, в java родительский класс тоже имеет доступ к приватным полям вложенного класса, что мне кажется не совсем правильным.

Для компонентов UI иногда создаю вложенный класс. Все также: для инкапсуляции части логики, которая нужна только родителю.

Я не говорил, что нельзя обычным классом. Проблема решается все та же, о которой я говорил: мы выделяем часть функционала в класс, который может иметь состояние, методы и наследоваться от другого, при этом имея полный доступ к приватным данным родительского объекта.

Да, писал свой итератор для своей структуры пару лет назад в пет проекте. И в джаве нет linq)

Так при реализации IEnumerable и нужен будет итератор. Вот его и делаем вложенным, так как за пределами нашей структуры он никому не нужен и не интересен.

Твой класс представляет некую структуру данных. И ты хочешь в его публичный интерфейс добавить итератор. Итератор - это объект, который предоставляет интерфейс для перебора данных в этой структуре. Вложенный класс, который может имплементить интерфейс итератора и одновременно имеет доступ к внутреннему устройству твоей структуры - отличное решение.

Городя костыли там, где все можно элегантно и просто сделать классом? Я видел такое, не понравилось)

Сорян, подумал, что ты мне отвечал и предлагал паттерны вместо вложенных классов)

Да) Анонимный не может быть не вложенным, ведь тогда ему придётся дать имя 😄

Пример из стандартной библиотеки java: в классе HashMap есть внутренние классы KeySet, Values, EntryIterator и несколько других. Они инкапсулируют часть логики HashMap внутри себя. В нем ещё есть статические классы, например, Node. Им уже не нужно внутреннее состояние родительской мапы, поэтому они статические.

1

Билдер и фабрика нужны для создания объектов. А я нигде и не предлагал создавать объекты с помощью внутренних классов.

Анонимные. Лямблы пришли на замену анонимным классам, до возможностей внутренних им далеко.

Тебе нужен функционал, привязанный к некоторым данным, для работы внутренней логики какого-то класса. Внутренний класс - идеальное решение для этого.

1

К полям не другого, а родительского класса. Ну то есть одна часть какой-то структуры обращается к другой - не вижу каких-либо противоречий принципам ООП)

friendly, namespace, доступ через двойное : - кажется, ты не про java) Я в систему классов на плюсах не погружался глубоко, так что не знаю таких нюансов. Говорю о том, как есть в джаве)

Из класса ObjB всегда доступен экземпляр родительского через странную и редко используемую конструкцию ObjA.this.

А у нас в Java есть как описанные классы (static), так и вложенные (без модификатора static). Вложенные имеют доступ к родительскому объекту. Ну и следовательно, для создания объекта вложенного нужен объект родительского)

1

Civilization IV, мод Fall from Heaven 2, демонами захватываю мир)

Что делает Инферно на Джадаме, да еще и до прибытия криган в Эофол?

3

Kingdoms of Amalur несколько дней назад допрошел) Норм экшен рпг)

А разве в предыдущих частях не было настройки "неограниченные лидеры", которая как раз и позволяла играть любым лидеров в любой цилизации?

1