Why I'm not implementing Decorator Design Pattern in my exam last semester.
Framework Layer Achitecture
kemarin pada saat ujian FLA (Framework Layer Architecture), dengan kata lain kita ngebahas design pattern pada yang dapat di implementasikan dengan kode untuk membuat sebuah aplikasi lebih mudah dalam skalabilitas, di manage, dan readable. Ujian akhir semester kemarin gue di kasih soal untuk membuat beberapa design pattern seperti mediator design pattern, state design pattern,observer design pattern, dan juga decorator design pattern.
Tapi sebelumnya kenapa gue jadiin blog ? ya mungkin mengungkapkan keluh kesah terhadap soal ujian wkwkwk, karena gue ga implementasiin design pattern yang terakhir which is menurut gue mubazir karena pake state design pattern aja udah cukup. Lanjut, pada saat awal-awal gue dikasih case soal untuk melanjutkan aplikasi To Do List dengan bahasa pemrograman JAVA, oke lanjutnya gue cukup percaya diri karena emang lebih mudah aja.
Sebelumnya gue gapaham sama sekali mediator design pattern apa WKWK, disoalnya disuruh buat mediator atau observer design pattern, karena gue udah pengalaman dengan observer design pattern dan mengerti seluk beluk sulitnya observer design pattern, atau emang gue nya aja sih masih gapaham sama observer design jadilah gue milikh implementasi mediator design pattern.
Use Mediator Design Pattern instead
Mediator design pattern kurang lebih konsepnya sama dengan mediator design pattern, dimana ada sistem subscribe dan notify atau notifikasi kepada objek maupun kelas yang terhubung dengan pattern utamanya akan di update, dalam mediator design pattern seluruh komponen yang ada hanya akan berinteraksi dengan kelas dialog utamanya saja, jadi tidak boleh ada kelas kelas yang saling terhubung tanpa melalui dialog dalam mediator design pattern.
Implementasi Mediator Design Pattern gue pada aplikasi ToDo List itu ada di interaksi antara komponen komponen UI yang ada, jadi antar komponen seperti JButton, JTextField, lalu hingga JCheckBox itu semuanya dibikin secara indipenden, dan dimodifikasi sedemikian rupa. Setelah itu interaksinya gue ubah semua jadi kedalam TodoMediator alias kelas dialog utama, dimana semua komponen hanya bisa berinteraksi dengan dialog utama, baik dalam data binding (pertukaran data) maupun menampilkan komponen tersebut dilayar
setelah selesai dengan mediator design pattern, barulah gue refactor bagian mode dark and light mode, dan juga mode check or uncheck box. Dosen suruh pake state design pattern dan untuk dark mode dan juga light mode, menggunakan decorator design pattern untuk warna light dan dark, tapi menurut gue komponen pengaturan warna dalam Kelas ToDo dialog utama udah cukup untuk konfigurasi dekorasi tanpa harus menggunakan decorator design pattern, tapi pas nulis gini ya kepikiran juga sih emang aplikasinya ga kompleks, tapi semakin komplek harusnya setiap tanggung jawab akan dibuat se indipenden mungkin karena mengurangi bloaters & spagheti code dan juga menghilangkan high dependency.
Akhirnya in the end of the day, gue tetep ga pake decorator design pattern, dan tanggung. jawab color configuration gue taroh di dalam TodoDialog, mungkin bisa dibilang kelas TodoDialog gue akan panjang, dan cukup over responsiblity, sehingga mengurangi kaidah SOLID programming, ya biasalah, namanya juga belajar HAHA. Sekian dari gue, terima kasihhh.