Member 13979315 Ответов: 1

Шаблоны проектирования в java


Я относительный новичок в программировании. Я хочу взять то, что я узнал, и создать простую систему инвентаризации, более конкретно систему управления активами, которая могла бы отслеживать типы ИТ-оборудования (ноутбук, рабочая станция, монитор и т. д.), а затем присваивать ему значения. Я не думаю, что это должно быть слишком сложно, но я застрял на одной вещи. При использовании шаблонов проектирования я не уверен, какие из них использовать. Я думаю, что это был бы интересный проект для меня, чтобы работать над ним.

Я думаю, что шаблон декоратора был бы очевидным для использования. Таким образом, я мог бы создать объект (например, ноутбук) и украсить его брендом, ОС, оперативной памятью, размером HD и т. д. Возможно, я мог бы использовать фабричный шаблон, чтобы каждый конкретный объект был инкапсулирован так, чтобы при создании (добавлении) монитора я не требовал от пользователя добавления размера OS/RAM/HD и т. д.

Как вы думаете, что было бы хорошим выбором шаблонов для этого? Любая помощь или предложения, которые вы могли бы предложить, были бы великолепны.

Что я уже пробовал:

Пока ничего, так как я все еще на стадии планирования

Richard MacCutchan

Я бы посоветовал получить больше опыта с основами, прежде чем переходить к разработке шаблонов.

Member 13979315

Когда я говорю "новичок", я взял 5 классов Udemy, объектно-ориентированное программирование в классе уровня мастера, а также алгоритмы и структуры данных. Итак, у меня есть основы, я только сейчас изучаю шаблоны проектирования и хочу построить что-то из них.

1 Ответов

Рейтинг:
0

Afzaal Ahmad Zeeshan

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

Первое, что я хотел бы спросить себя, кто будет использовать программное обеспечение? Потребитель на своей собственной машине, или группа пользователей, использующих API, или мое веб-приложение? Итак, первое, что приходит в голову, это настольное приложение или веб-приложение?

Шаблоны, о которых вы говорите, должны создавать объекты, а затем предоставлять их. Это лишь часть "системы управления запасами". Вам потребуется куча шаблонов провайдеров, инверсия управления (или, по крайней мере, инъекция зависимостей), чтобы отделить службы и модули, которые помогут вам лучше протестировать программное обеспечение позже. Сервис-ориентированная архитектура приложения поможет вам в случае, если вы собираетесь разместить его в веб-приложении, службы могут масштабироваться вверх/вниз независимо от других модулей.

java - что такое инъекция зависимостей? - переполнение стека[^] Я помню, что действительно полезная библиотека была google/guice: Guice (произносится как "сок").[^], вы можете рассмотреть возможность проверить его.

Цитата:
Возможно, я мог бы использовать фабричный шаблон, чтобы каждый конкретный объект был инкапсулирован так, чтобы при создании (добавлении) монитора я не требовал от пользователя добавления размера OS/RAM/HD и т. д.
Я думаю, что вы можете просто выбрать аппаратный компонент из сервиса или чего—то еще, что знает, к чему относятся другие аппаратные компоненты-если они выбирают оперативную память 8 ГБ, идут на 64-битный процессор, 32-битный не будет работать и многое другое. Просто фабрика не будет работать и может усложнить ситуацию, а также содержать кучу if...else- как тот, о котором я только что упоминал. В этом случае будет полезен сервис, подобный базе данных, который сможет связывать ресурсы и создавать компоненты. Речь идет не столько о шаблоне, сколько о бизнес-логике.

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