คำแนะนำโดยย่อเกี่ยวกับรูปแบบการออกแบบใน JavaScript



บทความนี้จะช่วยให้คุณมีแนวทางโดยละเอียดเกี่ยวกับรูปแบบการออกแบบใน JavaScript ในลักษณะที่เรียบง่ายเพื่อความเข้าใจที่ดีขึ้น

เป็นโซลูชันเชิงวัตถุขั้นสูงสำหรับปัญหาซอฟต์แวร์ที่เกิดซ้ำบ่อย รูปแบบคือการออกแบบที่ใช้ซ้ำได้และการโต้ตอบของวัตถุ แต่ละรูปแบบมีชื่อและกลายเป็นส่วนหนึ่งของคำศัพท์เมื่อพูดถึงโซลูชันการออกแบบที่ซับซ้อน

รูปแบบการออกแบบใน JavaScript คืออะไร?

สามารถกำหนดเป็นไฟล์ เทมเพลตซอฟต์แวร์ หรือคำอธิบายเพื่อแก้ไขปัญหาที่เกิดขึ้นในหลาย ๆ อินสแตนซ์ขณะออกแบบแอปพลิเคชันซอฟต์แวร์หรือกรอบงานซอฟต์แวร์





รูปแบบการออกแบบตัวสร้าง

ตอนนี้ให้เราคุยเรื่อง Gang of Four (GoF)



แก๊งโฟร์

23 แก๊งสี่คน (GoF) รูปแบบมักจะถือเป็นรากฐานสำหรับรูปแบบอื่น ๆ ทั้งหมด

แก๊งสี่คน (GoF) จากรูปแบบการออกแบบ:



องค์ประกอบของซอฟต์แวร์เชิงวัตถุที่สามารถนำกลับมาใช้ใหม่ซีรีส์คอมพิวเตอร์มืออาชีพของแอดดิสัน - เวสลีย์โดย Erich Gamma, Richard Helm, Ralph Jhonson, และ John Vlissides ทีhese 23 รูปแบบ GoF ถือเป็นรากฐานสำหรับรูปแบบอื่น ๆ ทั้งหมดแบ่งออกเป็นสามกลุ่ม: การสร้างสรรค์โครงสร้างและพฤติกรรม

ประเภทของรูปแบบการออกแบบ

โดยทั่วไปรูปแบบการออกแบบใน JavaScript มีอยู่สามประเภท มีดังต่อไปนี้:

วิธีการใช้งานฮีป

รูปแบบการสร้างสรรค์

โรงงานนามธรรม: สิ่งนี้จะสร้างอินสแตนซ์ที่มีคลาสหลายกลุ่ม สิ่งนี้จัดเตรียมอินเทอร์เฟซสำหรับการสร้างตระกูลซึ่งเป็นอ็อบเจ็กต์ที่เกี่ยวข้องหรือขึ้นอยู่กับโดยไม่มีข้อกำหนดของคลาสคอนกรีต

ผู้สร้าง: โครงสร้างวัตถุที่แยกออกจากการเป็นตัวแทน ยังแยกโครงสร้างของวัตถุที่ซับซ้อนออกจากการนำเสนอเพื่อให้สามารถสร้างกระบวนการก่อสร้างที่เหมือนกันทุกประการด้วยการนำเสนอที่แตกต่างกัน

วิธีการโรงงาน: สิ่งนี้สร้างอินสแตนซ์สำหรับคลาสที่ได้รับหลายคลาส ยังกำหนดอินเทอร์เฟซสำหรับการสร้างอ็อบเจ็กต์ แต่อนุญาตให้คลาสย่อยตัดสินใจว่าจะอินสแตนซ์คลาสใด นอกจากนี้ยังมี Factory Method ซึ่งช่วยให้คลาสเลื่อนการสร้างอินสแตนซ์ไปยังคลาสย่อย

ต้นแบบ: เป็นอินสแตนซ์เริ่มต้นอย่างสมบูรณ์ซึ่งสามารถคัดลอกหรือโคลนได้ โดยเฉพาะชนิดของวัตถุที่จะสร้างโดยใช้อินสแตนซ์ต้นแบบสร้างวัตถุใหม่โดยการคัดลอกต้นแบบนี้

ซิงเกิลตัน: เป็นอินสแตนซ์เริ่มต้นอย่างสมบูรณ์ที่จะคัดลอกหรือจะโคลนเป็นออบเจ็กต์เฉพาะสำหรับสร้างโดยใช้อินสแตนซ์ต้นแบบและสร้างอ็อบเจกต์ใหม่โดยการคัดลอกต้นแบบนี้

รูปแบบโครงสร้าง

อะแดปเตอร์: ตรงกับอินเทอร์เฟซของคลาสต่างๆ ยังแปลงอินเทอร์เฟซของคลาสเป็นอินเทอร์เฟซอื่นยกเว้นอินเทอร์เฟซที่มีไคลเอนต์ อะแด็ปเตอร์ยังช่วยให้คลาสทำงานร่วมกันได้ซึ่งไม่สามารถเป็นอย่างอื่นได้เนื่องจากอินเทอร์เฟซที่เข้ากันไม่ได้

สะพาน: มันแยกอินเทอร์เฟซของออบเจ็กต์ออกจากการนำไปใช้งาน แยกบทคัดย่อออกจากการนำไปใช้เพื่อให้ทั้งสองแตกต่างกันอย่างอิสระ

คอมโพสิต: โครงสร้างต้นไม้เป็นวัตถุที่เรียบง่ายและประกอบเป็นวัตถุประกอบเป็นโครงสร้างต้นไม้เพื่อแสดงลำดับชั้นบางส่วน คอมโพสิตช่วยให้ลูกค้าปฏิบัติต่อวัตถุแต่ละชิ้นและองค์ประกอบของวัตถุอย่างสม่ำเสมอ

มัณฑนากร: เพิ่มความรับผิดชอบให้กับวัตถุแบบไดนามิก แนบความรับผิดชอบเพิ่มเติมกับวัตถุแบบไดนามิก นักตกแต่งยังมีทางเลือกที่ยืดหยุ่นในการจัดคลาสย่อยเพื่อขยายฟังก์ชันการทำงาน

ซุ้ม: คลาสเดียวที่แสดงถึงระบบย่อยทั้งหมดและจัดเตรียมอินเทอร์เฟซแบบรวมให้กับชุดของอินเตอร์เฟสในระบบ Façadeกำหนดอินเตอร์เฟสระดับสูงขึ้นซึ่งทำให้ระบบย่อยใช้งานง่ายขึ้น

Split ทำอะไรใน java

ฟลายเวท: อินสแตนซ์แบบละเอียดที่ใช้สำหรับการแบ่งปันที่มีประสิทธิภาพเพื่อรองรับวัตถุขนาดใหญ่จำนวนมากได้อย่างมีประสิทธิภาพ ฟลายเวทเป็นวัตถุที่ใช้ร่วมกันซึ่งอาจใช้ในบริบทหลาย ๆ แบบพร้อมกันฟลายเวทยังทำหน้าที่เป็นวัตถุอิสระในแต่ละบริบทซึ่งแยกไม่ออกจากตัวอย่างของวัตถุที่ไม่ได้ใช้ร่วมกัน

พร็อกซี: มันเป็นวัตถุแทนวัตถุอื่น มันมีตัวแทนหรือวัตถุตัวยึดเพื่อควบคุมการเข้าถึง

รูปแบบพฤติกรรม:

เครือข่ายความรับผิดชอบ: เป็นวิธีส่งคำขอระหว่างห่วงโซ่ของวัตถุ หลีกเลี่ยงการมีเพศสัมพันธ์กับผู้ส่งและส่งคำขอไปยังผู้รับโดยให้โอกาสมากกว่าหนึ่งวัตถุในการจัดการคำขอ วัตถุที่รับจะถูกล่ามโซ่และส่งคำขอไปตามสายโซ่จนกว่าวัตถุจะจัดการ

คำสั่ง: มันห่อหุ้มคำขอคำสั่งเป็นวัตถุ คำขอที่ห่อหุ้มเป็นอ็อบเจ็กต์ดังนั้นให้คุณกำหนดพารามิเตอร์ไคลเอ็นต์ด้วยคำขอคิวหรือคำขอบันทึกที่แตกต่างกันและสนับสนุนการดำเนินการที่ไม่สามารถทำได้

ล่าม: เป็นวิธีการรวมองค์ประกอบของภาษาในโปรแกรม กำหนดภาษากำหนดตัวแทนสำหรับไวยากรณ์พร้อมกับล่ามที่ใช้การแสดงเพื่อตีความประโยคในภาษา

Iterator: การเข้าถึงตามลำดับขององค์ประกอบของคอลเล็กชันเป็นวิธีการเข้าถึงองค์ประกอบของออบเจ็กต์รวมตามลำดับโดยไม่ต้องเปิดเผยการเป็นตัวแทนที่อยู่เบื้องหลัง

คนกลาง: เป็นการกำหนดการสื่อสารระหว่างคลาสที่ง่ายขึ้น กำหนดวัตถุที่ห่อหุ้มวิธีที่ชุดของวัตถุโต้ตอบ คนกลาง ส่งเสริมการมีเพศสัมพันธ์แบบหลวม ๆ โดยการป้องกันไม่ให้วัตถุอ้างอิงถึงกันอย่างชัดเจนและช่วยให้คุณสามารถเปลี่ยนแปลงการโต้ตอบได้อย่างอิสระ

Memento: จับและเรียกคืนสถานะภายในของวัตถุ ไม่ละเมิดการห่อหุ้มจับภาพและภายนอกสถานะภายในของวัตถุเพื่อให้วัตถุกลับคืนสู่สถานะนี้ได้ในภายหลัง

ผู้สังเกตการณ์: เป็นวิธีการแจ้งการเปลี่ยนแปลงคลาสจำนวนหนึ่ง เป็นการกำหนดการพึ่งพาระหว่างออบเจ็กต์แบบหนึ่งต่อกลุ่มดังนั้นเมื่อออบเจ็กต์หนึ่งเปลี่ยนสถานะสิ่งที่ขึ้นอยู่ทั้งหมดจะได้รับการแจ้งเตือนและอัปเดตโดยอัตโนมัติ

สถานะ: มันปรับเปลี่ยนพฤติกรรมของวัตถุเมื่อสถานะเปลี่ยนไป อนุญาตให้ออบเจ็กต์เปลี่ยนพฤติกรรมเมื่อมีการเปลี่ยนแปลงสถานะภายใน วัตถุจะปรากฏขึ้นเพื่อเปลี่ยนคลาส

กลยุทธ์: มันห่อหุ้มอัลกอริทึมไว้ในคลาสและกำหนดอัลกอริทึมตระกูลห่อหุ้มแต่ละอันและทำให้สามารถใช้แทนกันได้ กลยุทธ์ช่วยให้อัลกอริทึมแตกต่างกันไปโดยไม่ขึ้นกับไคลเอนต์ที่ใช้

แม่แบบ: เลื่อนขั้นตอนที่แน่นอนของอัลกอริทึมไปยังคลาสย่อย เป็นการกำหนดโครงกระดูกของอัลกอริทึมในการดำเนินการโดยเลื่อนขั้นตอนที่สำคัญบางอย่างไปยังคลาสย่อย วิธีเทมเพลตช่วยให้เราสร้างคลาสย่อยเพื่อกำหนดขั้นตอนบางขั้นตอนของอัลกอริทึมใหม่โดยไม่ต้องเปลี่ยนโครงสร้างของอัลกอริทึม

ผู้เยี่ยมชม: เป็นการกำหนดการดำเนินการใหม่ให้กับคลาสโดยไม่มีการเปลี่ยนแปลง เป็นตัวแทนของการดำเนินการที่จะดำเนินการกับองค์ประกอบของโครงสร้างวัตถุ ผู้เยี่ยมชมช่วยให้คุณกำหนดการดำเนินการใหม่โดยไม่ต้องเปลี่ยนคลาสขององค์ประกอบที่ดำเนินการ

ด้วยเหตุนี้เราจึงมาถึงจุดสิ้นสุดของบทความนี้ ฉันหวังว่าคุณจะเข้าใจรูปแบบการออกแบบใน JavaScript ประเภทความสำคัญและการนำไปใช้

เมื่อคุณเข้าใจพื้นฐานของรูปแบบการออกแบบใน JavaScript แล้วให้ตรวจสอบไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ออกแบบมาสำหรับนักเรียนและผู้เชี่ยวชาญที่ต้องการเป็น Java Developer หลักสูตรนี้ออกแบบมาเพื่อให้คุณเริ่มต้นการเขียนโปรแกรม Java และฝึกอบรมแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับกรอบงาน Java ต่างๆเช่น Hibernate & ฤดูใบไม้ผลิ .

มีคำถามสำหรับเรา? ระบุไว้ในส่วนความคิดเห็นของบล็อก 'รูปแบบการออกแบบใน JavaScript' และเราจะติดต่อกลับโดยเร็วที่สุด