Factory Pattern and Abstract Factory Pattern
Factory Pattern Tutaq ki, Shape interface var ve daxilinde draw() deye bir metod var. Rectangle , Circle, Square classlari ise bu interfaceden implements edir. ShapeFactory deye bir class var ve bu class vasitesile lazim olan classlarin obyektlerini elde ede bilirik. Bu class daxilinde getShape deye bir metod var ve bu metod Shape type i String olaraq alir ve Stringe uygun olaraq muxtelif obyekti qaytarir. Polimorfizme alinan obyekti Shape interface nin obyektine set ede bilirik. draw metodunu cagirmaqla elde etdiyimiz obyektin draw metodunu istifade edirik. Ustun ceheti bundan ibaretdir ki, meselen proyektde Square classi daha sonradan istifadeye yararli olmadi ve Square2 adli bir class yaratdilar. Bizim deyishiklik lazim olan hisse yalniz ShapeFactory de SQUARE String i gelen zaman geriye new Square2(); obyekti return elemek olacaq. Ve evvel istifade olunan yerlerde hiss olunmaycaq ki, hal hazirda istifade etdkleri obyekt Square classinin yox, Square2 classinin ...