มีสองเหตุผลที่แตกต่างกันมากสำหรับการดำรงอยู่ของรูปแบบ
ครั้งแรกที่ได้รับการอธิบายค่อนข้างดี: การใช้รูปแบบหล่อลื่นการสื่อสารระหว่างนักพัฒนา หากคุณและฉันทั้งคู่เข้าใจว่าเมื่อฉันพูดว่า 'ผู้สังเกตการณ์' ฉันกำลังพูดถึงโครงสร้างของรหัสที่เฉพาะเจาะจงมากฉันก็สามารถอธิบายได้อย่างรวดเร็วว่ารหัสบิตที่ใช้รูปแบบนั้นทำงานอย่างไร ทางเลือกคือการอธิบายการแก้ปัญหาอย่างเต็มที่ซึ่งใช้เวลานานและมีแนวโน้มที่จะเกิดข้อผิดพลาด ("ดีฉันสร้างคลาสเสมือนจริงนี้ซึ่งอธิบายและอินเทอร์เฟซสำหรับวัตถุผู้บริโภคแล้วฉันสร้างคลาสที่เก็บรายการของผู้บริโภคที่ใช้งานอยู่ซึ่ง ... ")
ประโยชน์ที่สองของรูปแบบคือพวกเขาอยู่นอกรูปแบบการแก้ปัญหาสำหรับแบบฟอร์มปัญหาทั่วไป หากคุณรู้จักรูปแบบของคุณและตัวอย่างเช่นคุณพบปัญหาที่คุณต้องหาวิธีที่ดีในการรับข้อมูลจากวัตถุผู้ผลิต (อาจมีหลายรายการ) ไปยังวัตถุผู้บริโภคจำนวนมากโดยไม่ต้องแนะนำการเชื่อมต่อระหว่างชั้นเรียนที่ไม่จำเป็น เป็นงานสำหรับผู้สังเกตการณ์! " และคุณจะรู้วิธีแก้ปัญหาของคุณทันที
ประโยชน์เหล่านี้เสริมกำลังซึ่งกันและกันอย่างแท้จริง พวกเขาช่วยให้คุณสามารถแก้ปัญหาที่พบโดยทั่วไปในชั้นเรียนได้อย่างรวดเร็วและเมื่อคุณทำเสร็จแล้วคุณสามารถสื่อสารได้อย่างรวดเร็วว่าคุณแก้ไขปัญหาได้อย่างไร
ตัดกับโลกที่รูปแบบ "ไม่มี" คุณพบปัญหาเหล่านี้ซึ่งโดยทั่วไปแล้วไม่ใช่ปัญหาการออกแบบเล็กน้อยและคุณใช้เวลาพอสมควรในการหาคำตอบที่ดี (ซึ่งบังเอิญจะมีลักษณะคล้ายกับรูปแบบที่เหมาะสม) จากนั้นเพื่อนร่วมงานของคุณก็ขึ้นมาและอยากรู้ว่าคุณจะแก้ปัญหาอย่างไรและคุณใช้เวลาหนึ่งชั่วโมงเพื่ออภิปรายถึงวิธีการและสาเหตุ
ทั้งหมดนี้เกี่ยวข้องกับข้อแม้ที่ควรจะค่อนข้างชัดเจน: อย่าพยายามบังคับให้ปัญหาเป็นรูปแบบที่ไม่เหมาะสม หากรูปแบบไม่ตรงกับปัญหาวิธีการแก้ปัญหาจะสิ้นสุดลงและคุณจะสูญเสียความพยายามในการลดความพยายามของรูปแบบ นอกจากนี้เนื่องจากงานของคุณจะไม่สอดคล้องกับความเข้าใจของเพื่อนร่วมงานของคุณเกี่ยวกับความหมายของรูปแบบคุณจะสูญเสียค่าใช้จ่ายในการติดต่อสื่อสาร ในความเป็นจริงคุณมีแนวโน้มที่จะเพิ่มค่าใช้จ่ายในการติดต่อสื่อสารเกินกว่าค่าใช้จ่ายที่ไม่มีรูปแบบเพราะการใช้รูปแบบที่ไม่ถูกต้องจะช่วยให้เพื่อนร่วมงานของคุณเข้าใจผิดเกี่ยวกับวิธีแก้ปัญหาซึ่งแย่กว่าไม่มีความเข้าใจเลย