/**
* {@link <a href=
* "https://[Log in to view URL]"
* target= "_blank"></a>}
*
* @author itammb ( Italia Massimiliano Buscati )
* @version JDK 1.15
*
*/
class Main {
public static interface Chair {
public void sitOn();
}
public static interface CoffeTable {
public void restOn();
}
public static interface FornitureFactory {
public Chair createChair();
public CoffeTable createCoffeTable();
}
public static class VictorianChair implements Chair {
// implementazione prodotto
public void sitOn() {
System.out.println("VictorianChair []");
}
}
public static class VictorianCoffeTable implements CoffeTable {
// implementazione prodotto
public void restOn() {
System.out.println("VictorianCoffeTable []");
}
}
public static class VictorianFactory implements FornitureFactory {
// implementazione relazioni: abstract factory
public Chair createChair() {
return new VictorianChair();
}
public CoffeTable createCoffeTable() {
return new VictorianCoffeTable();
}
}
public static class FornitureStyle {
// classe init
private final FornitureFactory fornitureFactory;
public FornitureFactory getFornitureFactory() {
return fornitureFactory;
}
public FornitureStyle(FornitureFactory fornitureFactory) {
super();
this.fornitureFactory = fornitureFactory;
}
}
public static void main(String args[]) {
// Unit test - uso del design pattern: abstract factory
FornitureStyle fornitureStyle = new FornitureStyle( new VictorianFactory() );
fornitureStyle.getFornitureFactory().createChair().sitOn();
fornitureStyle.getFornitureFactory().createCoffeTable().restOn();
}
}
To embed this project on your website, copy the following code and paste it into your website's HTML: