รูปแบบการออกแบบ
รูปแบบการออกแบบที่สร้างสรรค์
Singleton - ตรวจสอบให้แน่ใจว่ามีการสร้างคลาสอินสแตนซ์เดียวเท่านั้นและระบุจุดเชื่อมต่อส่วนกลางไปยังวัตถุ
Factory (เวอร์ชันง่ายของ Factory Method) - สร้างวัตถุโดยไม่ต้องเปิดเผยตรรกะการสร้างอินสแตนซ์ไปยังไคลเอนต์และอ้างอิงไปยังวัตถุที่สร้างขึ้นใหม่ผ่านอินเทอร์เฟซทั่วไป
วิธีการจากโรงงาน - กำหนดอินเทอร์เฟซสำหรับการสร้างวัตถุ แต่ให้คลาสย่อยตัดสินใจว่าคลาสใดที่จะสร้างอินสแตนซ์และอ้างถึงวัตถุที่สร้างขึ้นใหม่ผ่านอินเทอร์เฟซทั่วไป
Abstract Factory - เสนออินเทอร์เฟซสำหรับสร้างตระกูลของวัตถุที่เกี่ยวข้องโดยไม่ต้องระบุคลาสของพวกเขาอย่างชัดเจน
ตัวสร้าง - กำหนดอินสแตนซ์สำหรับการสร้างวัตถุ แต่ให้คลาสย่อยตัดสินใจว่าคลาสใดที่จะสร้างอินสแตนซ์และอนุญาตให้ควบคุมได้อย่างละเอียดยิ่งขึ้นในกระบวนการก่อสร้าง
Prototype - ระบุชนิดของวัตถุที่จะสร้างโดยใช้อินสแตนซ์ต้นแบบและสร้างวัตถุใหม่โดยการคัดลอกต้นแบบนี้
รูปแบบการออกแบบเชิงพฤติกรรม
Chain of Responsibiliy - มันหลีกเลี่ยงการแนบผู้ส่งของการร้องขอไปยังผู้รับของมันทำให้วัตถุอื่น ๆ มีความเป็นไปได้ในการจัดการคำขอเช่นกัน - วัตถุกลายเป็นส่วนหนึ่งของห่วงโซ่และคำขอจะถูกส่งจากวัตถุหนึ่งไปยังอีกวัตถุหนึ่งข้ามโซ่จนกว่าวัตถุใดวัตถุหนึ่งจะจัดการมัน
คำสั่ง - ห่อหุ้มคำขอในวัตถุอนุญาตให้กำหนดพารามิเตอร์ของไคลเอนต์ที่มีการร้องขอที่แตกต่างกันและช่วยให้บันทึกคำขอในคิว
ล่าม - ให้ภาษากำหนดการเป็นตัวแทนของไวยากรณ์พร้อมกับล่ามที่ใช้การเป็นตัวแทนในการตีความประโยคในภาษา / แมปโดเมนกับภาษาภาษาไวยากรณ์และไวยากรณ์การออกแบบเชิงวัตถุแบบลำดับชั้น
Iterator - ให้วิธีการเข้าถึงองค์ประกอบของวัตถุรวมตามลำดับโดยไม่ต้องเปิดเผยการเป็นตัวแทนพื้นฐาน
ผู้ไกล่เกลี่ย - กำหนดวัตถุที่สรุปวิธีการที่ชุดของวัตถุโต้ตอบ ผู้ไกล่เกลี่ยส่งเสริมการมีเพศสัมพันธ์อย่างหลวม ๆ โดยป้องกันไม่ให้วัตถุอ้างอิงถึงกันอย่างชัดเจนและช่วยให้คุณสามารถโต้ตอบระหว่างกันได้อย่างอิสระ
ผู้สังเกตการณ์ - กำหนดการพึ่งพาแบบตัวต่อตัวระหว่างวัตถุเพื่อให้เมื่อวัตถุหนึ่งเปลี่ยนสถานะผู้ติดตามทั้งหมดจะได้รับแจ้งและอัพเดตโดยอัตโนมัติ
กลยุทธ์ - กำหนดตระกูลของอัลกอริธึมแค็ปซูลแต่ละอันและทำให้มันแทนกันได้ กลยุทธ์ช่วยให้อัลกอริทึมแตกต่างจากลูกค้าที่ใช้งาน
วิธีเทมเพลต - กำหนดโครงกระดูกของอัลกอริทึมในการดำเนินการโดยการเลื่อนขั้นตอนบางอย่างไปที่คลาสย่อย / วิธีเทมเพลตช่วยให้คลาสย่อยกำหนดขั้นตอนบางอย่างของอัลกอริทึมใหม่โดยไม่ให้พวกเขาเปลี่ยนโครงสร้างของอัลกอริทึม
ผู้เยี่ยมชม - แสดงถึงการดำเนินการที่จะดำเนินการกับองค์ประกอบของโครงสร้างวัตถุ / ผู้เข้าชมช่วยให้คุณกำหนดการดำเนินการใหม่โดยไม่ต้องเปลี่ยนชั้นเรียนขององค์ประกอบที่มันทำงาน
Null Object - ให้วัตถุเป็นตัวแทนสำหรับการขาดวัตถุประเภทที่กำหนด / Null Object Pattern ไม่แสดงพฤติกรรมใด ๆ อย่างชาญฉลาดซ่อนรายละเอียดจากผู้ทำงานร่วมกัน
รูปแบบการออกแบบโครงสร้าง
อะแดปเตอร์ - แปลงอินเทอร์เฟซของคลาสเป็นอินเทอร์เฟซไคลเอนต์อื่นที่คาดไว้ อะแดปเตอร์ / อนุญาตให้คลาสทำงานร่วมกันซึ่งอาจไม่เป็นอย่างอื่นเนื่องจากอินเตอร์เฟสที่เข้ากันไม่ได้
Bridge - เขียนวัตถุลงในโครงสร้างต้นไม้เพื่อแสดงลำดับชั้นทั้งส่วน / คอมโพสิตช่วยให้ลูกค้าปฏิบัติต่อวัตถุและองค์ประกอบของวัตถุอย่างสม่ำเสมอ
Composite - เขียนวัตถุลงในโครงสร้างต้นไม้เพื่อแสดงลำดับชั้นทั้งส่วน / คอมโพสิตช่วยให้ลูกค้าปฏิบัติต่อวัตถุและองค์ประกอบของวัตถุอย่างสม่ำเสมอ
มัณฑนากร - เพิ่มความรับผิดชอบเพิ่มเติมแบบไดนามิกให้กับวัตถุ
Flyweight - ใช้การแบ่งปันเพื่อสนับสนุนวัตถุจำนวนมากที่มีส่วนหนึ่งของสถานะภายในเหมือนกันโดยที่ส่วนอื่น ๆ ของรัฐสามารถเปลี่ยนแปลงได้
ของที่ระลึก - จับภาพสถานะภายในของวัตถุโดยไม่ละเมิด encapsulation ดังนั้นจึงให้ค่าเฉลี่ยสำหรับการกู้คืนวัตถุกลับสู่สถานะเริ่มต้นเมื่อจำเป็น
พร็อกซี - ระบุ“ ตัวยึด” สำหรับวัตถุเพื่อควบคุมการอ้างอิง