Saya akan mengatakan Kepala Pertama benar-benar salah dalam karakterisasi ini.
Wikipedia mendefinisikan Metode Templat sebagai:
Dalam rekayasa perangkat lunak, pola metode templat adalah pola desain perilaku yang mendefinisikan kerangka program suatu algoritma dalam operasi, menunda beberapa langkah untuk subkelas.
(Ini referensi GoF untuk itu.)
Dan Metode Pabrik didefinisikan sebagai:
Dalam pemrograman berbasis kelas, pola metode pabrik adalah pola kreatif yang menggunakan metode pabrik untuk menangani masalah membuat objek tanpa harus menentukan kelas objek yang tepat yang akan dibuat.
Tidak ada tumpang tindih antara keduanya, kecuali bahwa dalam C ++, warisan adalah bagian kunci dari keduanya. Namun, dalam bahasa yang membuat perbedaan antara warisan implementasi ( extends
di Jawa) dan implementasi antarmuka ( implements
di Jawa), bahkan kesamaan ini tidak ada, karena implementasi antarmuka cukup untuk metode pabrik, tetapi bukan metode templat. Dan di C ++, warisan implementasi murni (tanpa warisan antarmuka, yaitu warisan pribadi atau CRTP) dapat digunakan untuk yang pertama, tetapi tidak untuk yang terakhir.
Dan selain itu? Salah satunya adalah pola desain perilaku, yang lain adalah pola penciptaan. Satu menggambarkan garis besar operasi, dengan beberapa bagian penting ditinggalkan untuk diisi oleh subclass khusus; yang lain menentukan kontrak yang sangat sederhana, meninggalkan seluruh implementasi pada contoh nyata. Mereka sangat berbeda.
Menurut pendapat saya, kalimat yang dikutip itu salah. Entah itu kesalahan mencolok dalam buku ini, atau (kecil kemungkinannya) di luar konteks dan harus ditafsirkan secara berbeda.