Open keremkoseoglu opened 7 months ago
Selam @keremkoseoglu gonderdiginiz tasarim icin tesekkur ederim. Tasarim hakkinda asagidaki maddelerde degerli yorumlarinizi rica ederim:
ZCL_CSV_FILE_FACTORY
yerine daha genel olarak ZCL_FILE_FACTORY
, ve buna bagli olarak da ZCL_LOCAL_FILE
ve ZCL_SERVER_FILE
siniflari seklinde degistirsek nasil olurdu? Dolayisiyla bu siniflari daha sonra BINARY iceren dosyalar uretmek icin de kullanabilir miyiz?ZIF_ASCII_FILE_FACTORY
arayuzumuz zaten var. Dolayisiyla ZCL_LOCAL_FILE
ve ZCL_SERVER_FILE
degil de ZCL_LOCAL_ASCII_FILE
ve ZCL_SERVER_ASCII_FILE
olarak mi daha uygun olur. Ama bu durumda ileride BINARY versiyon icin, hatta JSON, XML, XLSX formatta dosyalar uretmek icin bunlara ait ilgili siniflar olusturmak durumundayiz degil mi? ZCL_LOCAL_[format]_FILE
, ZCL_SERVER_[format]_FILE
seklinde.ZIF_ASCII
'deki CREATE_FILE
metodundan yola cikip ZIF_ASCII_FILE_FACTORY
'deki CREATE metoduna "mantik" olarak ulasamadim. Belki bir ornek kod parcasi baglantiyi nasil kuracagimi ya da metodu nasil cagiracami anlamamda yardimci olabilir. Elbette sizden kod yazmanizi talep etmiyorum ama kucuk bir "method call" ornegi paylasirsaniz cok makbule gececektir :)Maddelerde kafa karisikligina sebep olduysam veya daha farkli sekilde ifade edilmesi gereken bir kisim varsa geri donusunuzu rica ederim.
Selamlar; sınıf sayısının özelliklere göre kartezyen çarpım şeklinde artabildiği durumlar için "Bridge Design Pattern" diye bir çözüm var, bunu incelemenizi öneririm.
Diğer sorunuza gelince, ZCL_CSV içerisinden ZCL_SERVER_CSV_FILE - CREATE çağırılacaktır.
@sfayuesa selamlar 🖖 Tasarım, genel hatlarıyla iyi gözüküyor.
Öne çıkan önerim: ben olsam, ZIF_CSV içerisine SERIALIZE diye bir yordam koymazdım. Çünkü; "Tell don't ask" prensibi çerçevesinde; ideal şartlarda, nesneler dışarıya veri çıkarmak zorunda olmamalıdır. Veriler, nesne içerisinde gizli kalmalıdır. Nesneye "Bana verilerini teslim et" demek yerine, "Şu işi yapmanı istiyorum" demek daha doğrudur.
Veri alış-verişi, sadece Interface'ler arasında olabilir. Bunun haricinde; isteyen herkes alsın ve kullansın diye SERIALIZE gibi yordamlarla dışarıya veri çıkarmak bu prensibe uygun değildir.
Alternatif yöntemi, UML olarak paylaşıyorum. Net olmayan bir nokta varsa, yorumunuzla birlikte maddeyi bana Assign edebilirsiniz.