Sebenarnya ada dua alasan yang berbeda dan substansial untuk keberadaan pola.
Yang pertama telah dijelaskan dengan cukup baik: penggunaan pola melumasi komunikasi antara pengembang. Jika Anda dan saya sama-sama mengerti bahwa ketika saya mengatakan 'Pengamat' saya berbicara tentang struktur kode yang sangat spesifik, maka saya dapat dengan cepat menggambarkan bagaimana sedikit kode yang menggunakan pola itu bekerja. Alternatifnya adalah dengan sepenuhnya menggambarkan solusi, yang memakan waktu dan rawan kesalahan. ("Ya, saya membuat kelas virtual murni ini yang menggambarkan dan antarmuka untuk objek konsumen, dan kemudian saya membuat kelas yang mengelola daftar konsumen aktif, yang ...")
Manfaat kedua dari pola adalah bahwa mereka merupakan solusi-bentuk yang tidak sesuai untuk bentuk-masalah umum. Jika Anda mengetahui pola Anda, dan, misalnya, Anda menghadapi masalah di mana Anda perlu menemukan cara yang baik untuk mendapatkan informasi dari (mungkin beberapa) objek produsen ke beberapa objek konsumen, tanpa memperkenalkan penggabungan yang tidak perlu antar kelas, Anda akan mengenali "ini adalah pekerjaan untuk Pengamat! " dan Anda akan segera tahu bagaimana menyelesaikan masalah Anda.
Manfaat ini juga sangat saling menguatkan. Mereka memungkinkan Anda untuk dengan cepat memecahkan kelas umum masalah tertentu, dan kemudian ketika Anda selesai, Anda dapat dengan cepat mengomunikasikan bagaimana Anda memecahkan masalah.
Bandingkan ini dengan dunia di mana pola "tidak ada". Anda mengalami salah satu dari kelas-kelas masalah ini, yang umumnya bukan masalah desain sepele, dan Anda menghabiskan cukup banyak waktu untuk menghasilkan solusi yang baik (yang, kebetulan, akan sangat mirip dengan pola yang sesuai). Kemudian, rekan kerja Anda datang dan ingin tahu bagaimana Anda menyelesaikannya, dan Anda menghabiskan waktu satu jam untuk membahas bagaimana dan mengapa.
Ini semua terkait dengan peringatan yang seharusnya terlihat cukup jelas: jangan mencoba memaksakan masalah ke dalam pola yang tidak sesuai. Jika polanya tidak sesuai dengan masalahnya, maka solusinya akan menjadi berbelit-belit dan Anda akan kehilangan upaya pengurangan manfaat dari polanya. Selain itu, karena pekerjaan Anda tidak lagi sesuai dengan pemahaman rekan kerja Anda tentang makna pola, Anda akan kehilangan biaya manfaat komunikasi. Bahkan, Anda kemungkinan akan meningkatkan biaya komunikasi di luar biaya tanpa pola, karena penyalahgunaan pola tersebut akan membuat rekan kerja Anda memiliki pemahaman yang salah tentang solusi, yang lebih buruk daripada tidak memahami sama sekali.