как применить внедрение зависимости в системе управления запасами - PullRequest
1 голос
/ 08 июля 2011

Я хочу внедрить систему управления продажами и запасами, я не совсем понимаю, как применять внедрение зависимости в системе.Я хочу иметь класс инвентаризации, который использует базу данных для сохранения своих данных, если у меня есть класс, который обрабатывает соединение с базой данных, скажем DBConnectionManager, затем слой базы данных DBWrapper, который использует DBConnectionManager и взаимодействует с БД, затем действует как абстрактный слой междуБД и классы, которые используют БД, такие как Inventory, Users, Customers, Sales.Или я должен написать sql коды в каждом User, Customer, .... Class.

Ответы [ 2 ]

1 голос
/ 08 июля 2011

Вы пробовали шаблон репозитория?

Замечательно использовать с DI, вы создаете корневой класс, который содержит соединения и основные операции, такие как обновление, удаление и т. Д ...

А затем расширить этот класс, чтобы создать более конкретные поведения с более значимыми именами ...

Вот ссылка об этом

http://nhibernate.hibernatingrhinos.com/27/the-repository-pattern

1 голос
/ 08 июля 2011

IMO, у вас должен быть интерфейс DAO , созданный для ваших операций / операций с БД. Этот интерфейс DAO будет иметь общие операции для хранения / извлечения данных. Затем вы можете иметь классы для реализации этого интерфейса DAO; один класс включил бы сохранение базы данных, один класс включил бы сохранение на основе текстового файла (в случае необходимости) и т. д.

Ваша реализация базы данных DAO, в свою очередь, будет иметь ссылку java.sql.Connection, которая позволит ему подключаться к базе данных. Вы будете использовать механизм зависимостей (например, Spring или Guice) для внедрения соответствующих экземпляров во время выполнения как для интерфейсов DAO, так и для объектов подключения.

В основном, учитесь думать с точки зрения интерфейсов и предпочитайте композицию наследованию (и не избегайте использования наследования, чтобы избежать дублирования кода; просто убедитесь, что суперкласс не является частью контракта или не знакомы с внешним миром. Я лично нашел Документы Google Guice хорошим источником того, как начать думать в терминах модулей (в контексте внедрения зависимостей).

...