[04-05-2023] Questo primo capitolotto di questa sezione di appunti è frutto di un merge importante con appunti di ex studenti magistrali.
https://www.youtube.com/watch?v=tAuRQs_d9F8
Immagina avere praticamente un metodo factory che mi istanzia le varie tipologie di hamburger che potremmo andare ad ordinare all’interno di un ristorante. Ecco un esempio in codice java in cui abbiamo delle figure da andare a disegnare. Prima di tutto andiamo a definire una interfaccia:
public interface Shape {
void draw();
}
Creiamo la classe che concretamente implementa una determinata interfaccia, in questo caso stiamo implementando un rettangolo:
public class Rectangle implements Shape {
@Override
public void draw() {
System.out.println("Inside Rectangle::draw() method.");
}
}
Creiamo quindi un Factory per generare oggetti della classe che abbiamo definito basandoci sulle informazioni che abbiamo a disposizione:
public class ShapeFactory {
//use getShape method to get object of type shape
public Shape getShape(String shapeType){
if(shapeType == null){
return null;
}
...
} else if(shapeType.equalsIgnoreCase("RECTANGLE")){
return new Rectangle();
...
return null;
}
}
Possiamo poi andare ad usare la factory per andare ad ottenere l’oggetto concreto:
public class FactoryPatternDemo {
public static void main(String[] args) {
ShapeFactory shapeFactory = new ShapeFactory();
...
//get an object of Rectangle and call its draw method.
Shape shape2 = shapeFactory.getShape("RECTANGLE");
//call draw method of Rectangle
shape2.draw();
...
}
}
Potrei anche usare dei metodi builder per avere un pochino di granularità per quel che riguarda la fase di building di un determinato oggetto. Singleton è una classe che ha solamente una parte che si occupa dell’instanziamento degli oggetti.
Un’altra serie di video molto carini che ho trovato è questa:
https://www.youtube.com/watch?v=EcFVTgRHJLM&list=PLrhzvIcii6GNjpARdnO4ueTUAVR9eMBpc&index=4
Pattern Builder → https://www.youtube.com/watch?v=EhkvW5ydtNQ
Ripasso principi della programmazione ad oggetti: