บทความนี้ไม่มีจาก |
แบบแผนการออกแบบซอฟต์แวร์ (อังกฤษ: software design pattern) คือแบบแผนหรือแนวทางที่ใช้ในการแก้ไขปัญหาที่เกิดขึ้นเสมอๆ ในการออกแบบคอมพิวเตอร์ซอฟต์แวร์ แบบแผนและแนวทางเหล่านี้ไม่ใช่รูปแบบตายตัวที่จะถูกนำไปใช้โดยตรง แต่เป็นการอธิบายแนวทางหรือโครงที่จะถูกนำไปประยุกต์ใช้ในสถานการณ์ต่างๆ กล่าวเฉพาะในทางการเขียนโปรแกรมเชิงวัตถุ แบบแผนการออกแบบจะแสดงความสัมพันธ์ต่อกันระหว่างคลาสหรืออ็อบเจกต์ต่างๆ โดยไม่จำเพาะเจาะจงการนำไปใช้งานในขั้นสุดท้าย ขั้นตอนวิธีไม่จัดเป็นแบบแผนการออกแบบเพราะเป็นการแก้ปัญหาในทางการประมวลผลมากกว่าในทางการออกแบบ
จุดเริ่มต้น
แบบแผนการออกแบบมีจุดเริ่มต้นจากหนังสือชื่อ A Pattern Language: Towns, Buildings, Construction แต่งโดยสถาปนิกชื่อ Christopher Alexander เมื่อปี ค.ศ. 1977 จากนั้น Kent Beck และ Ward Cunningham ริเริ่มนำเอาแนวคิดนี้มาทดลองใช้กับการเขียนโปรแกรมในปี ค.ศ. 1987 และได้นำเสนอผลงานในงานประชุม OOPSLA ในปีเดียวกันนั้น
แบบแผนการออกแบบเริ่มเป็นที่นิยมในวงการวิทยาการคอมพิวเตอร์ในปี ค.ศ. 1994 หลังจากมีหนังสือที่แต่งโดย Erich Gamma, Richard Helm, Ralph Johnson และ John Vlissides (Gang of four: GoF) ชื่อ Design Patterns: Elements of Reusable Object-Oriented Software ()
ประโยชน์
แบบแผนการออกแบบช่วยทำให้กระบวนการพัฒนาโปรแกรมรวดเร็วขึ้นเพราะเป็นตัวอย่างที่ผ่านการพิสูจน์ทดสอบมาแล้ว การออกแบบซอฟต์แวร์ที่ดีต้องเตรียมการสำหรับปัญหาที่อาจจะไม่พบจนกว่าจะเริ่มนำไปใช้งาน การใช้แบบแผนการออกแบบซอฟต์แวร์ช่วยป้องกันปัญหาเล็กน้อยที่อาจจะลุกลามใหญ่โต ทั้งยังทำให้การทำความเข้าใจโค้ดง่ายขึ้นในหมู่ผู้ร่วมงานในทีมที่คุ้นเคยกับแบบแผนการออกแบบ
การจัดหมวดหมู่และแบบแผนในหนังสือ Design Patterns
การจัดหมวดหมู่แบบแผนการออกแบบซอฟต์แวร์ตามหนังสือ Design Patterns แบ่งตามวัตถุประสงค์การใช้งาน ดังนี้
แบบแผนการสร้างอ็อบเจกต์ (creational patterns)
แบบแผนโครงสร้าง (structural patterns)
แบบแผนพฤติกรรม (behavioral patterns)
หมวดหมู่แบบแผนการออกแบบซอฟต์แวร์อื่นๆ
- concurrency patterns
- architectural patterns
ดูเพิ่ม
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
bthkhwamniimmikarxangxingcakaehlngthimaidkrunachwyprbprungbthkhwamni odyephimkarxangxingaehlngthimathinaechuxthux enuxkhwamthiimmiaehlngthimaxacthukkhdkhanhruxlbxxk eriynruwacanasaraemaebbnixxkidxyangiraelaemuxir aebbaephnkarxxkaebbsxftaewr xngkvs software design pattern khuxaebbaephnhruxaenwthangthiichinkaraekikhpyhathiekidkhunesmx inkarxxkaebbkhxmphiwetxrsxftaewr aebbaephnaelaaenwthangehlaniimichrupaebbtaytwthicathuknaipichodytrng aetepnkarxthibayaenwthanghruxokhrngthicathuknaipprayuktichinsthankarntang klawechphaainthangkarekhiynopraekrmechingwtthu aebbaephnkarxxkaebbcaaesdngkhwamsmphnthtxknrahwangkhlashruxxxbeckttang odyimcaephaaecaacngkarnaipichnganinkhnsudthay khntxnwithiimcdepnaebbaephnkarxxkaebbephraaepnkaraekpyhainthangkarpramwlphlmakkwainthangkarxxkaebbcuderimtnaebbaephnkarxxkaebbmicuderimtncakhnngsuxchux A Pattern Language Towns Buildings Construction aetngodysthapnikchux Christopher Alexander emuxpi kh s 1977 caknn Kent Beck aela Ward Cunningham rierimnaexaaenwkhidnimathdlxngichkbkarekhiynopraekrminpi kh s 1987 aelaidnaesnxphlnganinnganprachum OOPSLA inpiediywknnn aebbaephnkarxxkaebberimepnthiniyminwngkarwithyakarkhxmphiwetxrinpi kh s 1994 hlngcakmihnngsuxthiaetngody Erich Gamma Richard Helm Ralph Johnson aela John Vlissides Gang of four GoF chux Design Patterns Elements of Reusable Object Oriented Software ISBN 0 201 63361 2 praoychnaebbaephnkarxxkaebbchwythaihkrabwnkarphthnaopraekrmrwderwkhunephraaepntwxyangthiphankarphisucnthdsxbmaaelw karxxkaebbsxftaewrthiditxngetriymkarsahrbpyhathixaccaimphbcnkwacaerimnaipichngan karichaebbaephnkarxxkaebbsxftaewrchwypxngknpyhaelknxythixaccaluklamihyot thngyngthaihkarthakhwamekhaicokhdngaykhuninhmuphurwmnganinthimthikhunekhykbaebbaephnkarxxkaebbkarcdhmwdhmuaelaaebbaephninhnngsux Design Patternskarcdhmwdhmuaebbaephnkarxxkaebbsxftaewrtamhnngsux Design Patterns aebngtamwtthuprasngkhkarichngan dngni aebbaephnkarsrangxxbeckt creational patterns Abstract Factory Factory Method Singletonaebbaephnokhrngsrang structural patterns Adapter Composite Facadeaebbaephnphvtikrrm behavioral patterns Interpreter Observer Template methodhmwdhmuaebbaephnkarxxkaebbsxftaewrxunconcurrency patterns architectural patternsduephimkarekhiynopraekrmechingwtthu yuexmaexl phasacawabthkhwamsxftaewr hrux opraekrmkhxmphiwetxrniyngepnokhrng khunsamarthchwywikiphiediyidodykarephimetimkhxmuldk