ID: S202605061236
Status: school
Tags: avans 2-4, UML - Unified Modeling Language, avans 2-4 softwaredesign en kwaliteit vak
avans 2-4 sdkl3 coupling
met volledige composition vaandel is het alleen maar in die classe te vinden, nergens anders. Met de open composition vaandel (vgm aggregation) dan composen ze wel, maar wordt het object niet gemaakt in de andere klasse, en dan is hij niet exclusief tot de klasse)
Je mag altijd uml specificaties gebruiken, maar je mag ook gwn een associatie kiezen en de developer laten kiezen.
een Class Diagram is vgm bedacht door Java developers, als je kijkt naar de library logica en dat een folder een library heet in Java komt dat wel overeen, en is ook dus ongv hoe je je structuur kan inrichten.
[Insert Arno showing how to implement classes in Java for 15m which is off topic, and is about the UML of last lesson...]
Loose coupling is dat je niet gebonden bent aan concrete klassen.
Dependency Inversion is wanneer je een interface maakt om te zorgen dat een klasse niet dependent is op een andere klasse.
Dit kan je daarna gebruiken in dependency injection.
okay ik ga ff de sheet oplezen - arno
Design patterns
Design Patterns zijn een generieke algemene oplossing voor veel voorkomende problemen.
Factory Pattern
nu gaan we een factory pattern maken. Meestal zijn deze factories vol van static methods. Met een factory pattern voorkom je dat er een constructor bestaat die tientallen attributen nodig heeft. En dan heeft de factory de strong coupling naar de klasse om het te instantieren. Op deze manier heb je 1 centrale locatie in je code die dingen instantieerd. Factories geven altijd abstracte types terug. (interfaces of abstracte / super klassen)
public class SimplePizzaFactory {
public Pizza createPizza(String type) {
Pizza pizza = null;
if (type.equals("cheese")) {
pizza = new CheesePizza();
} else if (type.equals("pepperoni")) {
pizza = new PepperoniPizza();
} else if (type.equals("clam")) {
pizza = new ClamPizza();
} else if (type.equals("veggie")) {
pizza = new VeggiePizza();
}
return pizza;
}
}Okay, maar waar instantieer je de factory? je doet dit in de main.
wat doe je als je meerdere sources nodig hebt? ja, das taaie bami. een factory in een factory I guess.
daarna geef je de factory mee in de constructor van andere classen.

Abstract Factory Pattern

Huiswerk
Voor vorige opdracht: Maak de vorige DAO opdracht. En maak het werkend in de code van die library code die we gedownload kregen van Brightspace. Voeg het toe volgens de volgende uitwerking:

Voor deze les:
Maak een factory voor het ondersteunen van meerdere DAO sources.
en ook in code

References
- dit is de les van vandaag.