CodeGym /จาวาบล็อก /สุ่ม /รูปแบบการออกแบบใน Java [ตอนที่ 1]
John Squirrels
ระดับ
San Francisco

รูปแบบการออกแบบใน Java [ตอนที่ 1]

เผยแพร่ในกลุ่ม
นี่คือบทความสั้น ๆ เกี่ยวกับรูปแบบการออกแบบใน Java จะไม่มีการใช้งานรูปแบบใด ๆ มีเพียงรายการรูปแบบใน Java พร้อมกับคำอธิบายสั้น ๆ ของแต่ละรูปแบบ สำหรับผู้ที่คุ้นเคยกับหัวข้อนี้อยู่แล้ว ข้อมูลนี้จะเป็นประโยชน์ในการทบทวนและสรุป ในทางกลับกัน ผู้ที่เรียนรู้เกี่ยวกับรูปแบบเป็นครั้งแรกจะได้รับประโยชน์จากสิ่งนี้ในฐานะภาพรวมเบื้องต้นของหัวข้อก่อนที่จะเจาะลึกลงไป รูปแบบการออกแบบใน Java [ตอนที่ 1] - 1 รูปแบบการออกแบบเป็นโซลูชั่นที่พร้อมใช้งานสำหรับงานโปรแกรมมิ่งที่เกิดขึ้นบ่อยครั้ง ไม่ใช่คลาสหรือไลบรารีที่สามารถเชื่อมต่อกับโปรเจ็กต์ได้ มันเป็นอะไรที่มากกว่านั้น มีการนำรูปแบบการออกแบบที่เหมาะสมกับแต่ละงานมาใช้ในแต่ละกรณี คุณควรจำไว้ว่าเมื่อนำไปใช้อย่างไม่ถูกต้องหรือกับงานที่ไม่เหมาะสม รูปแบบการออกแบบสามารถสร้างปัญหาได้มากมาย อย่างไรก็ตาม รูปแบบที่ใช้อย่างเหมาะสมสามารถช่วยให้คุณทำงานให้เสร็จได้อย่างง่ายดายและง่ายดาย

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

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

สร้างสรรค์:

  • Singleton — จำกัดการสร้างคลาสไว้ที่อินสแตนซ์เดียว และให้การเข้าถึงอินสแตนซ์เดียวนั้น

  • โรงงาน — ใช้เมื่อเรามีซูเปอร์คลาสที่มีคลาสย่อยหลายรายการ และเราจำเป็นต้องส่งคืนคลาสย่อยตามอินพุต

  • โรงงานนามธรรม — ใช้ super factory เพื่อสร้างโรงงาน จากนั้นเราจะใช้สร้างวัตถุ

  • Builder — ใช้สร้างวัตถุที่ซับซ้อนโดยใช้วัตถุอย่างง่าย มันค่อยๆสร้างวัตถุขนาดใหญ่จากวัตถุขนาดเล็กที่เรียบง่าย

  • ต้นแบบ — ช่วยปรับปรุงประสิทธิภาพเมื่อสร้างวัตถุที่ซ้ำกัน แทนที่จะสร้างวัตถุใหม่ จะสร้างและส่งกลับโคลนของวัตถุที่มีอยู่

โครงสร้าง:

  • อะแดปเตอร์ — ตัวแปลงระหว่างสองวัตถุที่เข้ากันไม่ได้ เราสามารถใช้รูปแบบอะแดปเตอร์เพื่อรวมสองอินเทอร์เฟซที่เข้ากันไม่ได้

  • คอมโพสิต — ใช้หนึ่งคลาสเพื่อแสดงโครงสร้างต้นไม้

  • พร็อกซี — ให้ฟังก์ชันของคลาสอื่น

  • Flyweight — นำวัตถุกลับมาใช้ใหม่แทนที่จะสร้างวัตถุที่คล้ายกันจำนวนมาก

  • Facade — มีส่วนต่อประสานที่เรียบง่ายสำหรับลูกค้า ซึ่งใช้ส่วนต่อประสานเพื่อโต้ตอบกับระบบ

  • Bridge — ทำให้คลาสเฉพาะเป็นอิสระจากคลาสที่ใช้อินเตอร์เฟส

  • มัณฑนากร — เพิ่มฟังก์ชันใหม่ให้กับวัตถุที่มีอยู่โดยไม่ต้องผูกมัดกับโครงสร้าง

พฤติกรรม:

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

  • Mediator — จัดเตรียมคลาสตัวกลางที่จัดการการสื่อสารทั้งหมดระหว่างคลาสต่างๆ

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

  • ผู้สังเกตการณ์ — อนุญาตให้วัตถุหนึ่งตรวจสอบและตอบสนองต่อเหตุการณ์ที่เกิดขึ้นในวัตถุอื่น

  • กลยุทธ์ — อนุญาตให้เปลี่ยนกลยุทธ์ (อัลกอริทึม) ได้ในขณะดำเนินการ

  • Command — อินเทอร์เฟซที่ประกาศวิธีการดำเนินการบางอย่าง

  • สถานะ — อนุญาตให้วัตถุเปลี่ยนพฤติกรรมขึ้นอยู่กับสถานะของมัน

  • ผู้เยี่ยมชม — ใช้เพื่อลดความซับซ้อนของการดำเนินการกับกลุ่มของวัตถุที่เกี่ยวข้อง

  • ล่าม — กำหนดไวยากรณ์สำหรับภาษาอย่างง่ายในโดเมนปัญหา

  • Iterator — เข้าถึงองค์ประกอบของคอลเลกชันตามลำดับโดยไม่ทราบรูปแบบพื้นฐาน

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

เมื่อคุณผ่านหลักสูตร CodeGym คุณจะพบกับรูปแบบสองสามรูปแบบในรายการนี้ ฉันแนะนำงานต่อไปนี้เกี่ยวกับรูปแบบ: 1522 , 1530 , 1631 , big01 , 2912 , 3107 ... การใช้รูปแบบการออกแบบอย่างชาญฉลาดทำให้การบำรุงรักษารหัสมีความน่าเชื่อถือมากขึ้น เพราะนอกจากความจริงที่ว่ารูปแบบการออกแบบเป็นวิธีแก้ปัญหาทั่วไปที่ดี นักพัฒนารายอื่นสามารถจดจำได้ ซึ่งช่วยลดเวลาที่ต้องใช้ในการทำงานกับโค้ดบางโค้ด
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION