มันต้องมีคำอธิบายโดยละเอียด แต่ฉันจะพยายามร่างความแตกต่างอย่างสุดความสามารถ
รูปแบบเป็นความธรรมดาที่คุณพบในโปรแกรม ช่วยให้เราสามารถแยกโครงสร้างที่ซับซ้อนขนาดใหญ่และสร้างโดยใช้ชิ้นส่วนที่เรียบง่าย เป็นวิธีแก้ปัญหาทั่วไปสำหรับระดับของปัญหา
ซอฟต์แวร์ที่ซับซ้อนขนาดใหญ่ต้องผ่านชุดของการแยกโครงสร้างในระดับต่างๆ รูปแบบสถาปัตยกรรมเป็นเครื่องมือในระดับใหญ่ ในระดับที่เล็กกว่ารูปแบบการออกแบบเป็นเครื่องมือและในระดับการนำไปใช้กระบวนทัศน์การเขียนโปรแกรมเป็นเครื่องมือ
รูปแบบสามารถเกิดขึ้นได้ในระดับที่แตกต่างกันมาก ดูFractals การเรียงลำดับอย่างรวดเร็วการเรียงลำดับผสานเป็นรูปแบบอัลกอริทึมทั้งหมดสำหรับการจัดกลุ่มองค์ประกอบตามลำดับ
สำหรับมุมมองที่ง่ายที่สุด:
- กระบวนทัศน์การเขียนโปรแกรม - เฉพาะสำหรับภาษาโปรแกรม
- รูปแบบการออกแบบ - แก้ปัญหาที่เกิดซ้ำในการสร้างซอฟต์แวร์
- รูปแบบสถาปัตยกรรม - โครงสร้างพื้นฐานสำหรับระบบซอฟต์แวร์
สำนวนเป็นเทคนิคการเขียนโปรแกรมเฉพาะกระบวนทัศน์และภาษาเฉพาะที่กรอกรายละเอียดระดับต่ำ
รูปแบบการออกแบบมักจะเกี่ยวข้องกับความคล้ายคลึงกันในระดับรหัส มีรูปแบบต่างๆสำหรับการปรับแต่งและสร้างระบบย่อยที่มีขนาดเล็กลง โดยปกติจะได้รับอิทธิพลจากภาษาโปรแกรม รูปแบบบางซีดลงเล็กน้อยเนื่องจากกระบวนทัศน์ภาษา รูปแบบการออกแบบเป็นกลวิธีระดับกลางที่เน้นโครงสร้างและพฤติกรรมของเอนทิตีและความสัมพันธ์
ในขณะที่รูปแบบสถาปัตยกรรมถูกมองว่าเป็นเรื่องธรรมดาในระดับที่สูงกว่ารูปแบบการออกแบบ รูปแบบสถาปัตยกรรมเป็นกลยุทธ์ระดับสูงที่เกี่ยวข้องกับส่วนประกอบขนาดใหญ่คุณสมบัติทั่วโลกและกลไกของระบบ
รูปแบบได้มาอย่างไร? ผ่าน:
- กลับมาใช้
- การจัดหมวดหมู่
- และในที่สุดสิ่งที่เป็นนามธรรมเพื่อกลั่นความเป็นธรรมดา
หากคุณทำตามความคิดที่วางไว้ข้างต้น คุณจะเห็นว่า Singleton เป็น "รูปแบบการออกแบบ" ในขณะที่ MVC เป็นหนึ่งในรูปแบบ "สถาปัตยกรรม" เพื่อจัดการกับการแยกความกังวล
ลองอ่านต่อ:
- http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science)
- http://en.wikipedia.org/wiki/Design_pattern
- http://en.wikipedia.org/wiki/Anti-pattern