Skip to content
Snippets Groups Projects
Commit 6c3d3d79 authored by Peter Hertkorn's avatar Peter Hertkorn
Browse files

Add Google Guice libraries and constructor dependency injection

parent dc32fb47
No related branches found
No related tags found
No related merge requests found
File added
File added
File added
package pizzeria;
import com.google.inject.Inject;
public class PizzaFranchise {
private PizzaStore store;
@Inject
public PizzaFranchise(PizzaStore store) {
this.store = store;
}
......
package pizzeria;
import com.google.inject.AbstractModule;
public class PizzaStoreModule extends AbstractModule {
@Override
protected void configure() {
bind(PizzaStore.class)
//.to(ChicagoPizzaStore.class);
.to(NYPizzaStore.class);
}
}
package pizzeria;
import com.google.inject.Guice;
import com.google.inject.Injector;
public class PizzaTestDrive {
public static void main(String[] args) {
PizzaStore[] storeList = {new TestPizzaStore(), new NYPizzaStore(), new ChicagoPizzaStore()};
String[] customerList = {"Ethan", "Joel", "Martha"};
String[] pizzaType = {"cheese", "veggie"};
for (int i=0; i<storeList.length; i++) {
PizzaFranchise franchise = new PizzaFranchise(storeList[i]);
for (int j=0; j<pizzaType.length; j++) {
Pizza pizza = franchise.orderPizza(pizzaType[j]);
System.out.println(customerList[i] + " ordered a " + pizza.getName() + "\n");
}
String[] pizzaType = { "cheese", "clam", "pepperoni", "veggie" };
Injector i = Guice.createInjector(new PizzaStoreModule());
PizzaFranchise franchise = i.getInstance(PizzaFranchise.class);
for (int j = 0; j < pizzaType.length; j++) {
Pizza pizza = franchise.orderPizza(pizzaType[j]);
System.out.println("Customer ordered a " + pizza.getName() + "\n");
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment