Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
2 / 2 / 1
Регистрация: 04.06.2019
Сообщений: 7

Архитектура

15.04.2022, 10:26. Показов 741. Ответов 5

Студворк — интернет-сервис помощи студентам
Имею такого вида архитектуру, которая реализовывает скиллы (способности) и айтемы (предметы), однако в процессе её расширения (правильное слово?) столкнулся с проблемой: то, что используется, должно использоваться на что-то, даже если на себя, но у меня не получается хорошим образом это выразить в коде. Я создал дочерний интерфейс IDirectedUsable который предписывает содержание таких методов GetStringCastType (нужен для некоторых действий) и естественно ChooseCastTarget (рабочая среда - Unity, поэтому первую строку метода можете воспринимать как ожидание клика мышкой и только потом присваивание значения). После введения данного интерфейса я смог получить нужные реализации и классы, но появилось несколько проблем: как можно заметить на диаграмме существует 2 совершенно одинаковых трезубца с совершенно одинаковой реализацией, к тому же ChooseCastTarget является публичным методом, что на самом деле нежелательно. Прошу помочь мне решить данные проблемы лучшим известным вам способом, или не лучшим, хоть бы каким-нибудь адекватным.
Понимаю, что может быть сложно что-то объяснить на форуме, потому открыт для более личного общения через дискорд - Telov#3969.
Миниатюры
Архитектура   Архитектура  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.04.2022, 10:26
Ответы с готовыми решениями:

Архитектура
Есть две библиотеки(EmployeeManagmentLibrary, DatabaseLibrary) DatabaseLibrary работает с классом Entity с полями...

Архитектура
Всем добрый вечер! Возник такой вопрос. Как лучше из одного класса получить данные другого класса. Для понятности пример кода. Utils -...

Трехзвенная архитектура
Всем привет. Реализовал простое клиент-серверное приложение с подключением к БД, и столкнулся с проблемой. При повторном подключении...

5
 Аватар для 4PT3M
45 / 33 / 13
Регистрация: 05.05.2019
Сообщений: 265
Записей в блоге: 1
15.04.2022, 10:27
Попробуй создать Vector4 и хранить там значения я всегда так делал
0
2 / 2 / 1
Регистрация: 04.06.2019
Сообщений: 7
15.04.2022, 11:16  [ТС]


Добавлено через 47 минут
Мучаюсь с этой проблемой уже около недели и не знаю что делать, пожалуйста обратите внимание
0
13 / 11 / 2
Регистрация: 07.05.2015
Сообщений: 418
15.04.2022, 11:30
Кто-нибудь2, создай классы для скилов и классы для объектов, а связи храни в отдельной таблице. Или в каждом скиле храни ссылки на то, на что он применяется
0
2 / 2 / 1
Регистрация: 04.06.2019
Сообщений: 7
15.04.2022, 14:39  [ТС]
Первое я не понял, а хранение связи не предусматривается, т.к. на объект применения нужно указать мышкой

Добавлено через 59 минут
Подсказали в дискорде запихнуть скилы в айтемы, так можно будет иметь сразу несколько скилов на одном айтеме и разрешится проблема с иерархией.
0
13 / 11 / 2
Регистрация: 07.05.2015
Сообщений: 418
15.04.2022, 14:45
Кто-нибудь2, правильно подсказали
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.04.2022, 14:45
Помогаю со студенческими работами здесь

Плагинная архитектура
Добрый день, поделитесь наработками, ресурсами, по теме, плиз.

Архитектура мессенджера
Разрабатываю централизованный мессенджер на десктоп. Для связи клиента и сервера планировал использовать tcp или web сокеты, но когда...

Архитектура логирования
По всем правилам "хорошего тона" создания приложений добавление записей в журнал (логгирование) должно быть вынесено в отдельный проект и...

плагинная архитектура
здравствуйте. посоветуйте толковую книгу или ресурс (желательно на русском) по написанию приложений с возможностью дополнения их...

Архитектура наследования
Помогите пожалуйста максимально правильно с точки зрения ООП составить архитектуру приложения. На текущий момент у меня есть пространство...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru