O que é um Bootstrapper na programação?

15

Às vezes, vejo o termo "Bootstrapper". Vi isso pela última vez ao criar alguns exercícios de aprendizado para o Prism. Eu tropecei na UnityBootstrapperaula. Minha pergunta é: quando você chamaria uma classe de "Bootstrapper"? Por quê? O que isso diz sobre a classe?

Ioan Paul Pirau
fonte

Respostas:

22

No seu exemplo específico, você está falando sobre um Bootstrapper de contêiner de injeção de dependência. É aqui que você configura todas as suas instâncias e geralmente prepara o contêiner para uso.

Também acaba sendo onde reside a maior parte do acoplamento em seu aplicativo (ele deve residir em algum lugar), mas esse é um efeito colateral, não o objetivo.

Em termos mais gerais, um bootstrapper é apenas uma classe ou método que prepara / configura um grupo de classes / objetos ou uma API inteira para suas necessidades e uso específicos.

Ribeiro
fonte
11

No sentido geral, há uma excelente resposta na EL & U.SE para a pergunta Qual é o significado de "bootstrap"? :

Bootstrap refere-se a um processo que é semelhante a se destacar pelos bootstraps . A idéia é que é fisicamente impossível se levantar curvando-se e tentando "levantar".

Bootstrapping refere-se a fazer exatamente isso, mas de uma maneira análoga à física. A computação é a área mais comum que ouço o termo. Um programa que se auto -inicia é aquele que começa com uma operação extremamente trivial e a utiliza para continuar o processo de inicialização internamente. Em sentido estrito, o programa precisa de ajuda para o primeiro passo, mas, uma vez que isso acontece, não precisa de ajuda externa.

Como tal, UnityBootstrapperseria logicamente uma classe que permite que seu aplicativo se apóie por meio de bootstraps , uma afirmação confirmada pela página do MSDN da classe.

Classe base que fornece uma sequência básica de inicialização que registra a maioria dos ativos da Biblioteca de aplicativos compostos em um IUnityContainer.

Comentários: Esta classe deve ser substituída para fornecer configuração específica do aplicativo.

Mark Booth
fonte
2

Na terminologia de baixo nível, um bootstrapper é um pedaço de código carregado na inicialização que configura a memória e o ambiente antes de disparar o ponto de entrada do sistema operacional.

Paul Nathan
fonte
1

Geralmente significa algo que, dado um conjunto mínimo de dados, cria um objeto completo. Por exemplo, um YieldCurveBootstrapper toma cotações de mercado (taxas de depósito, taxas de swap etc.) e cria uma curva de rendimento calibrada.

quant_dev
fonte