Catatan: Pertanyaan ada di akhir pos.
Saya telah membaca utas stackoverflow lainnya mengenai Abstract Factory vs Factory Method . Saya mengerti maksud dari masing-masing pola. Namun, saya tidak jelas tentang definisi itu.
Metode Pabrik mendefinisikan antarmuka untuk membuat objek, tetapi memungkinkan subclass memutuskan yang mana dari mereka untuk instantiate. Metode pabrik memungkinkan kelas menunda instantiation ke subclass.
Sebaliknya, Pabrik Abstrak menyediakan antarmuka untuk membuat keluarga objek terkait atau bergantung tanpa menentukan kelas konkret mereka.
The Abstrak Pabrik terlihat sangat mirip dengan Pabrik Metode . Saya telah menggambar beberapa kelas UML untuk mengilustrasikan poin saya.
catatan:
- Diagram berasal dari www.yuml.com sehingga tidak berorientasi sempurna. Tapi ini layanan gratis :).
- Diagram mungkin tidak sempurna. Saya masih mempelajari pola desain GoF .
Metode pabrik:
Pabrik Abstrak (hanya 1 anggota):
Pabrik Abstrak (lebih banyak anggota):
Pertanyaan:
- Jika Pabrik Abstrak hanya memiliki satu pencipta dan satu produk, apakah itu masih merupakan pola Pabrik Abstrak ? (antarmuka untuk membuat famili)
- Dapatkah pembuat Metode Pabrik dibuat dari Antarmuka atau harus dari kelas? (kelas menunda instantiations ke subclass)
- Jika Pabrik Abstrak hanya dapat memiliki satu pencipta dan satu produk, apakah satu-satunya perbedaan antara Pabrik Abstrak dan Metode Pabrik bahwa pencipta untuk yang pertama adalah sebuah Antarmuka dan pembuat untuk yang terakhir adalah Kelas?