วนซ้ำ

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

วนซ้ำ

ตัวอย่างเช่น องค์ประกอบต่างๆ เช่น ต้นไม้ รายการที่เชื่อมโยง ตารางแฮช และอาร์เรย์สามารถผ่าน (และแก้ไข) โดยใช้วัตถุ Iterator

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

คุณลักษณะของตัววนซ้ำที่ดำเนินการอย่างสมบูรณ์คือรหัสที่ใช้ตัววนซ้ำอาจไม่รู้อะไรเลยเกี่ยวกับประเภทของการรวมที่วนซ้ำ

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

สั่งการ

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

สั่งการ

ในการเรียกใช้เมธอด คุณต้อง:

  • การอ้างอิงวัตถุ
  • ชื่อเมธอด (การอ้างอิงเมธอด)
  • ค่าพารามิเตอร์ของเมธอด
  • การอ้างอิงถึงบริบทที่มีวัตถุที่ใช้

ข้อมูลทั้งหมดนี้จำเป็นต้องบรรจุลงในวัตถุเดียว - คำสั่ง ( command )

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

วัตถุสั่งการรู้เกี่ยวกับเครื่องรับและเรียกวิธีการรับ ค่าพารามิเตอร์ตัวรับจะถูกเก็บไว้ในคำสั่ง ผู้เรียก (ผู้เรียกใช้) รู้วิธีดำเนินการคำสั่งและอาจติดตามคำสั่งที่ดำเนินการ ผู้เรียก (ผู้เรียกใช้) ไม่รู้อะไรเลยเกี่ยวกับคำสั่งเฉพาะ รู้เพียงเกี่ยวกับอินเทอร์เฟซ

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

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

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

ตัวอย่างเช่น คุณกำลังเขียนโปรแกรมที่ให้คุณทำงานต่างๆ ตามกำหนดเวลา ในแง่หนึ่ง โปรแกรมของคุณจะติดตามงานและจัดการการเรียกใช้ ในทางกลับกัน โปรแกรมสามารถมีตัวดำเนินการหลายตัว ซึ่งแต่ละตัวสามารถดำเนินการคำสั่งประเภทของตัวเองได้ ตัวอย่างเช่น การส่ง SMS การส่งจดหมาย ส่งข้อความไปยัง Telegram เป็นต้น

ผู้สังเกตการณ์

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

ผู้สังเกตการณ์

คลาสที่คลาสอื่นๆ สมัครรับ ข้อมูลเรียกว่า Subjects และคลาสที่สมัครรับข้อมูลเรียกว่าผู้สังเกตการณ์

เมื่อนำรูปแบบ Observer ไปใช้ โดยทั่วไปจะใช้คลาสต่อไปนี้:

  • Observable - อินเทอร์เฟซที่กำหนดวิธีการเพิ่ม ลบ และแจ้งเตือนผู้สังเกตการณ์
  • ผู้สังเกตการณ์ - อินเทอร์เฟซที่ผู้สังเกตการณ์ได้รับการแจ้งเตือน
  • ConcreteObservableเป็นคลาสคอนกรีตที่ใช้ อินเทอร์เฟซ ที่สังเกตได้
  • ConcreteObserverเป็นคลาสคอนกรีตที่ใช้อ ร์เฟซ สังเกตการณ์

รูปแบบผู้สังเกตการณ์จะใช้เมื่อระบบ:

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

รูปแบบนี้มักใช้ในสถานการณ์ที่ผู้ส่งข้อความไม่สนใจในสิ่งที่ผู้รับทำกับข้อมูลที่ให้ไว้

ผู้เข้าชม

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

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

ผู้เข้าชม

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

ควรใช้เทมเพลตหาก:

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

คนกลาง

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

คนกลาง

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

คนกลางกำหนดอินเทอร์เฟซสำหรับแลกเปลี่ยนข้อมูลกับวัตถุเพื่อนร่วมงาน, ผู้ไกล่เกลี่ยโดยเฉพาะประสานงานการกระทำของวัตถุเพื่อนร่วมงาน.

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

เพื่อนร่วมงานส่งคำขอไปยังผู้ค้าปลีก/span> และรับคำขอจากมัน ผู้ไกล่เกลี่ยใช้พฤติกรรมความร่วมมือโดยส่งต่อคำขอแต่ละรายการไปยังหนึ่งรายการขึ้นไปเพื่อนร่วมงาน.