Люблю программировать и играть в игры. Моя группа VK: https://vk.com/gordon_from_blumberg_workshop Мой канал в ТГ: https://t.me/gordon_from_blumberg_workshop
Ну офигеть.
Да, скорее всего) Но нейронные связи в мозгу, которые появятся при самостоятельной реализации алгоритмов, пригодятся) И не только в разработке игр)
Да, рабочие задачи скучные) На бэке все упирается в "возьми данные из базы или интеграции и отдай клиенту, а потом обратно")
Круто, молодец! Я в первый раз тоже мозги поломал) Зато впоследствии нарешал кучу задач на codingame.com, в некоторых пригодился поиск пути)
А как научиться алгоритмам, если всегда готовые брать?)
И потом каждый раз смотреть, как он грустно сидит на скамейке :D
С удовольствием прошел все 4 кампании) И даже тут опубликовал пост с впечатлениями) Жду обещанных дополнений с новыми кампаниями)
Как раз ее нарушением будет вынос логики, необходимой родительскому классу, в отдельный. А вложенный - это все еще часть родительского класса, более того, сам по себе инкапсулирующий часть функционала. Правда, в java родительский класс тоже имеет доступ к приватным полям вложенного класса, что мне кажется не совсем правильным.
Для компонентов UI иногда создаю вложенный класс. Все также: для инкапсуляции части логики, которая нужна только родителю.
Я не говорил, что нельзя обычным классом. Проблема решается все та же, о которой я говорил: мы выделяем часть функционала в класс, который может иметь состояние, методы и наследоваться от другого, при этом имея полный доступ к приватным данным родительского объекта.
Да, писал свой итератор для своей структуры пару лет назад в пет проекте. И в джаве нет linq)
Так при реализации IEnumerable и нужен будет итератор. Вот его и делаем вложенным, так как за пределами нашей структуры он никому не нужен и не интересен.
Твой класс представляет некую структуру данных. И ты хочешь в его публичный интерфейс добавить итератор. Итератор - это объект, который предоставляет интерфейс для перебора данных в этой структуре. Вложенный класс, который может имплементить интерфейс итератора и одновременно имеет доступ к внутреннему устройству твоей структуры - отличное решение.
Городя костыли там, где все можно элегантно и просто сделать классом? Я видел такое, не понравилось)
Сорян, подумал, что ты мне отвечал и предлагал паттерны вместо вложенных классов)
Да) Анонимный не может быть не вложенным, ведь тогда ему придётся дать имя 😄
Пример из стандартной библиотеки java: в классе HashMap есть внутренние классы KeySet, Values, EntryIterator и несколько других. Они инкапсулируют часть логики HashMap внутри себя. В нем ещё есть статические классы, например, Node. Им уже не нужно внутреннее состояние родительской мапы, поэтому они статические.
Билдер и фабрика нужны для создания объектов. А я нигде и не предлагал создавать объекты с помощью внутренних классов.
Анонимные. Лямблы пришли на замену анонимным классам, до возможностей внутренних им далеко.
Тебе нужен функционал, привязанный к некоторым данным, для работы внутренней логики какого-то класса. Внутренний класс - идеальное решение для этого.
К полям не другого, а родительского класса. Ну то есть одна часть какой-то структуры обращается к другой - не вижу каких-либо противоречий принципам ООП)
friendly, namespace, доступ через двойное : - кажется, ты не про java) Я в систему классов на плюсах не погружался глубоко, так что не знаю таких нюансов. Говорю о том, как есть в джаве)
Из класса ObjB всегда доступен экземпляр родительского через странную и редко используемую конструкцию ObjA.this.
А у нас в Java есть как описанные классы (static), так и вложенные (без модификатора static). Вложенные имеют доступ к родительскому объекту. Ну и следовательно, для создания объекта вложенного нужен объект родительского)
Civilization IV, мод Fall from Heaven 2, демонами захватываю мир)
Что делает Инферно на Джадаме, да еще и до прибытия криган в Эофол?
Kingdoms of Amalur несколько дней назад допрошел) Норм экшен рпг)
А разве в предыдущих частях не было настройки "неограниченные лидеры", которая как раз и позволяла играть любым лидеров в любой цилизации?
Уточнение: цветную железную маску на серую)
Ох, красиво написано) Надо допройти, а забросил пару лет назад, уже даже не помню, из-за чего)