Descrizione dei design pattern Factory method, Abstract factory.
Il design pattern Factory method è un design pattern creazionale.
Definisce un'interfaccia per la creazione di oggetti, delegando alle sottoclassi il compito di decidere quale tipo di oggetto istanziare.
Loading diagram...
// ConcreteCreator
public class ConcreteNumberCreator extends NumberCreator {
@Override
public Product factoryMethod(int number) {
if ((number & 1) == 0)
return new EvenNumber();
else
return new OddNumber();
}
}
// ConcreteProductA
public class OddNumber implements Number {
@Override
public boolean isEven() { return false; }
}
// ConcreteProductB
public class EvenNumber implements Number {
@Override
public boolean isEven() { return true; }
}
Il design pattern Abstract factory è un design pattern creazionale.
Definisce un’interfaccia per creare famiglie di oggetti che hanno qualche relazione senza specificare le loro classi concrete.
Loading diagram...
// ConcreteProductA1
public class CircleMinimize implements Shape {
@Override
public String draw() { return "(_)" }
}
// ConcreteProductA2
public class CircleClose implements Shape {
@Override
public String draw() { return "(X)" }
}
// ConcreteProductB1
public class SquareMinimize implements Shape {
@Override
public String draw() { return "[_]" }
}
// ConcreteProductB2
public class SquareClose implements Shape {
@Override
public String draw() { return "[X]" }
}
// ConcreteFactoryA
public class CircleCreator implements Creator {
@Override
public Shape getMinimize() { return new CircleMinimize(); }
@Override
public Shape getClose() { return new CircleClose(); }
}
// ConcreteFactoryB
public class SquareCreator implements Creator {
@Override
public Shape getMinimize() { return new SquareMinimize(); }
@Override
public Shape getClose() { return new SquareClose(); }
}