Весенняя философия - PullRequest
       21

Весенняя философия

1 голос
/ 23 октября 2009

Каждый раз, когда я спрашиваю кого-либо о том, что такое Spring Framework или что он делает, они просто говорят мне, вы помните, что голливудский принцип прав: «Не звони мне, я позвоню тебе», именно это и делает Spring Framework. 1001 *

Что мне из этого сделать?

Ответы [ 4 ]

3 голосов
/ 23 октября 2009

Это означает, что класс не создает вручную экземпляры компонентов, от которых он зависит - что-то (например, контекст IoC Spring) предоставляет классу экземпляр каждого компонента, который ему нужен. Обычно это делается либо через сеттеры для каждого компонента, либо через конструктор, который принимает все эти компоненты.

В основном вместо того, чтобы класс сам выполнял ручную реализацию:

public class Foo {
  private Bar bar;
  public void doStuff() {
    bar = new BarImplementation();
    bar.doMoreStuff();
  }
}

IoC внедряет панель зависимостей в Foo, поэтому, когда вы получаете объект Foo из контекста, вы знаете, что он готов к использованию.

public class Foo {
  private Bar bar;
  public void setBar(Bar bar) { this.bar = bar; }
  public void doStuff() {
    // bar's already been set by the time this is called!
    bar.doMoreStuff();
  }
}

Вы не создали экземпляр Bar вручную, вместо этого ваши файлы конфигурации (такие как Spring XML) установили его для вас. Кроме того, Foo больше не привязан к BarImplementation. Использование интерфейсов позволяет вставлять различные реализации, в том числе макеты, используемые для тестирования.

1 голос
/ 23 октября 2009

Иногда модели с обратным вызовом более эффективны, особенно когда речь идет о синтаксическом анализе

Если вы представляете себе голливудскую ситуацию, то для «агента по кастингу» будет гораздо эффективнее звонить всем, как только они узнают, кого они собираются сыграть (или даже не звонить), вместо того, чтобы продолжать принимать звонки от каждого заявителя, желающего обновить.

0 голосов
/ 23 октября 2009

См. http://en.wikipedia.org/wiki/Inversion_of_Control

Spring делает и другие вещи, но внедрение IoC / Dependency кажется наиболее заметной функцией Это может помочь сделать систему менее связанной и более гибкой.

0 голосов
/ 23 октября 2009

Callbacks. : P Вот что это значит для меня. Обратные вызовы - это функции, ожидающие вызова.

...