Если вы получаете сообщение об ошибке с SQuirreL Client при выполнении SQL-запроса с точкой с запятой, например CREATE PROCEDURE, вам нужен плагин MySQL. Вы можете выбрать его при установке. Он не выбран по умолчанию.
я полагаю, что DI является способом формирования или instantianting боб. DI может быть сделан во многих отношениях как конструктор, метод считывания метода set и т.д.
, Шаблон "фабрика" является просто другим способом инстанцировать бобов. этот шаблон будет использоваться главным образом, когда необходимо будет создать объекты с помощью шаблона разработки фабрики, потому что при использовании этого шаблона Вы не настраиваете свойства боба, только инстанцируете объекта.
Проверка эта ссылка: Внедрение зависимости
Binoj,
я не думаю, что необходимо выбрать один по другому.
действие перемещения зависимого класса или интерфейса к конструктору класса или методу set следует за шаблоном DI. Объект Вы передаете конструктору или устанавливаете, может быть реализован с Фабрикой.
, Когда использовать? Используйте шаблон или шаблоны, которые находятся в Вашей рулевой рубке разработчика. С чем они чувствуют себя больше всего комфортно и находят самыми легкими понять.
Существуют проблемы, которые легко решить с внедрением зависимости, которые так легко не решены с комплектом фабрик.
Часть различия между, с одной стороны, инверсия управления и внедрения зависимости (МОК/DI), и, с другой стороны, сервисный локатор или комплект фабрик (фабрика):
МОК/DI является полной экосистемой объектов области и сервисов в и себя. Это настраивает все для Вас в способе, которым Вы указываете. Ваши объекты области и сервисы создаются контейнером и не создают себя: они поэтому не имеют никакой зависимости от контейнера или ни от каких фабрик. МОК/DI разрешает чрезвычайно высокую степень конфигурируемости, со всей конфигурацией в единственном месте (конструкция контейнера) в верхнем слои Вашего приложения (GUI, веб-фронтенд).
краткие обзоры Фабрики далеко часть конструкции Ваших объектов области и сервисов. Но объекты области и сервисы все еще ответственны за выяснение, как создать себя и как получить все вещи, от которых они зависят. Все эти "активные" зависимости фильтруют полностью через все слои в Вашем приложении. Нет никакого единственного места для движения для конфигурирования всего.
Я полагаю, что DI является типом уровня абстракции на фабриках, но они также предоставляют преимущества вне абстракции. Истинная фабрика знает, как инстанцировать единственного типа и настроить его. Хороший уровень DI обеспечивает способность, через конфигурацию, инстанцировать и настроить много типов.
, Очевидно, для проекта с несколькими простыми типами, который требует относительно стабильной бизнес-логики в их конструкции, шаблон "фабрика" прост понять, реализовать, и работает хорошо.
OTOH, если у Вас есть проект, содержащий многочисленные типы, реализации которых Вы ожидаете изменять часто, DI дает Вам гибкость через свою конфигурацию, чтобы сделать это во времени выполнения, не имея необходимость перекомпилировать Ваши фабрики.
С внедрением зависимости клиент не должен получать его зависимости самостоятельно, его все подготовились заранее.
С фабриками, кто-то должен назвать их для окончания сгенерированных объектов к месту, где они необходимы.
различие заключается главным образом в этой строке, где вызов фабрики и выборка созданного объекта сделаны.
, Но с фабриками необходимо записать эту 1 строку везде, Вам нужен такой объект. С DI просто необходимо создать проводное соединение (отношение между использованием и созданным объектом) однажды и просто полагаться на присутствие объекта позже везде. С другой стороны DI часто требует немного больше (сколько зависит от платформы), работа над стороной подготовки.
Я предложил бы сохранить понятия простыми и простыми. Внедрение зависимости является большим количеством архитектурного шаблона для слабой связи компонентов программного обеспечения. Шаблон "фабрика" является всего одним способом разделить ответственность создания объектов других классов к другому объекту. Шаблон "фабрика" можно назвать как инструмент для реализации DI. Внедрение зависимости может быть реализовано во многих отношениях как DI с помощью конструкторов, с помощью отображающий XML-файлы и т.д.
При использовании фабрики код все еще на самом деле ответственен за создание объектов. DI Вы производите ту ответственность на стороне перед другим классом или платформой, которая является отдельной от Вашего кода.
Мои мысли:
Внедрение зависимостей: передайте соавторов в качестве параметров конструкторам. Структура внедрения зависимостей: универсальная и настраиваемая фабрика для создания объектов, которые будут передаваться в качестве параметров конструкторам.