การเรียนรู้ / การปรับใช้รูปแบบการออกแบบ (สำหรับมือใหม่) [ปิด]


85

ฉันเป็นมือใหม่ที่สับสนและเป็นนักเขียนโปรแกรมมือสมัครเล่นที่พยายามจับประเด็นนี้ดังนั้นโปรดยกโทษให้ฉันหากคำถามของฉันผิดไปเล็กน้อยหรือไม่สมเหตุสมผล

ฉันเห็นคำถามมากมายเกี่ยวกับ SO เกี่ยวกับการใช้รูปแบบการออกแบบและฉันสงสัยว่าใครมีแหล่งข้อมูลที่ดีสำหรับการเรียนรู้และใช้รูปแบบการออกแบบหรือไม่? ฉันเข้าใจแนวคิดทั่วไปและรู้วิธี / เวลาที่จะใช้สองอย่าง (Singletons, Factory method) แต่ฉันรู้ว่าฉันพลาด

(ในกรณีที่มีความสำคัญภาษาที่ฉันชอบคือ C # แต่ฉันสามารถเรียนรู้จากตัวอย่างในภาษาอื่นได้)

คำตอบ:


84

รูปแบบการออกแบบ Head First

ข้อความแสดงแทน

และหน้ารูปแบบการออกแบบ Wikipediaเป็นแหล่งข้อมูลที่ดีที่สุดสำหรับผู้เริ่มต้น FluffyCatเป็นสิ่งที่ดีอีกแหล่งข้อมูลออนไลน์ฟรีสำหรับรูปแบบการออกแบบทั้งในJavaและPHP

หนังสือ The Gang of Fourเป็นที่ที่จะไปในภายหลัง แต่มันค่อนข้างก้าวหน้าดังนั้นฉันจะรอจนกว่าคุณจะเข้าใจอย่างมั่นคงจากแหล่งข้อมูลอื่น ๆ


4
มีตัวอย่างโค้ด C # สำหรับ Head First Design Patterns อยู่ที่msquaredweb.com/DesignPatterns/…
toolkit

5
ฉันมองไปที่หนังสือเล่มนั้น ... เกลียดมัน ฉันจึงหยิบหนังสือ GoF ขึ้นมาและเรียนรู้เกี่ยวกับรูปแบบการออกแบบทั้งหมดจากสิ่งนั้น มันค่อนข้างแห้ง แต่ให้ข้อมูลมากกว่า
Thomas Owens

1
ตอนแรกฉันคิดว่าหนังสือเล่มแรกในหัวจะน่าสะอิดสะเอียนไปหมด (มันหนักไปในเรื่องอุปมาอุปมัยและมีน้ำเสียงที่เป็นบทสนทนา) .. แต่จริงๆแล้วมันสร้างสรรค์และให้ข้อมูลจริงๆ ฉันมีความสุขมากที่ได้รับความเสี่ยงและซื้อมัน Imo เลือก gang-of-four = masochism ที่ไม่จำเป็น
codeinthehole

2
ฉันพบว่าหัวหนังสือเล่มแรกรู้สึกคลื่นไส้อย่างสมบูรณ์ ฉันใช้เวลาอย่างมากในการ "สนุก" ฉันคิดว่ามันสื่อความคิดสำคัญได้ไม่ดี - พวกเขาหลงทาง การอ่านหนังสือก็เหมือนกับการดูบางคนที่พ่อพยายามทำตัวเท่ แต่หนังสือ GoF เป็นหนังสือแนวอื่น ๆ และไม่ใช่สำหรับทุกคน
Draemon

2
@ บิล: ฉันรู้ แต่ฉันเห็นด้วยกับความคิดเห็นของ @Thomas และ @Draemon เพื่อนที่ไม่ชอบการเขียนโปรแกรมของฉันซึ่งได้รับการแนะนำหนังสือชุดนี้สำหรับอัลกอริทึมของคลาสการเขียนโปรแกรมเกลียดพวกเขาและจบลงด้วยหนังสือ "แห้ง" เนื่องจากจำนวนข้อมูลต่อหน้าสูงกว่า เป็นเพียงเรื่องของความชอบเท่านั้น ฉันอ่านหนังสือแนวเทคนิคมาตั้งแต่ยังเด็กและเข้าโรงเรียนมัธยมปลายเทคนิคสูงนั่นทำให้ฉันเคยอ่านหนังสือ "แห้ง" ฉันชอบหนังสือที่ไม่มีสัตว์เลี้ยงที่พูดคุยกับฉันและหลบหลีก แต่เป็นข้อมูลที่ชัดเจนสำหรับฉันในการดูดซึม
Esteban Küber

27

รูปแบบการออกแบบนั้นยอดเยี่ยมด้วยเหตุผลหลายประการ:

  1. ช่วยให้คุณเริ่มต้นในการแก้ปัญหาทั่วไป
  2. ให้คำศัพท์แก่นักพัฒนาเพื่อพูดคุยเกี่ยวกับวิธีการแก้ปัญหาบางอย่างในลักษณะที่กะทัดรัดมาก
  3. เมื่อทำงานร่วมกับนักพัฒนาที่รู้จักรูปแบบการออกแบบและคุณใช้รูปแบบการออกแบบในโซลูชันของคุณพวกเขาจะเข้าใจโซลูชันได้เร็วขึ้นมาก

แต่เมื่อเป้าหมายของคุณคือการเรียนรู้รูปแบบการออกแบบฉันคิดว่าคุณขาดปัจจัยพื้นฐาน รูปแบบการออกแบบทั้งหมดเป็นไปตามหลักการทั่วไป High Cohesion, Low Coupling Open Closed Principle, DRY, Liskov Substitution Principle เป็นต้นสำหรับปัจจัยพื้นฐานเหล่านี้ฉันจะอ่านหนังสือต่อไปนี้ตามลำดับนี้:

  1. Head First Object-Oriented Analysis and Design (Head First) [ILLUSTRATED] (ปกอ่อน)
  2. การใช้ UML และรูปแบบ (ปกแข็ง)
  3. หลักการรูปแบบและแนวปฏิบัติแบบ Agile ใน C # (Robert C.Martin Series) (ปกแข็ง)

หลังจากนั้นคุณก็พร้อมสำหรับรูปแบบการออกแบบแก๊งสี่แบบพื้นฐาน

  1. รูปแบบการออกแบบ Head First (Head First) [ILLUSTRATED] (ปกอ่อน)
  2. คัมภีร์ไบเบิล
  3. เว็บไซต์ที่ดี (อย่าซื้ออะไรเลยมันไม่คุ้มค่า) http://dofactory.com/Patterns/Patterns.aspx (การใช้งานบางส่วนของไซต์นี้ควรค่าแก่การอภิปราย

ขั้นตอนต่อไป:

  1. รูปแบบของสถาปัตยกรรมแอปพลิเคชันสำหรับองค์กร (ซีรี่ส์ลายเซ็น Addison-Wesley) (ปกแข็ง)
  2. หนังสือ POSA

และจำไว้เสมอว่ารูปแบบไม่ใช่เป้าหมาย!


2
ฉันคิดว่าพื้นฐานของ OO (การห่อหุ้มการสืบทอดความหลากหลาย ฯลฯ ) เพียงพอสำหรับความรู้เพื่อเริ่มเรียนรู้รูปแบบการออกแบบ คุณสามารถเรียนรู้หลักการอื่น ๆ (High Cohesion, Low Coupling Open Closed Principle, DRY, Liskov Substitution Principle ฯลฯ ) ผ่านรูปแบบการเรียนรู้
Bill the Lizard

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

20

ขอเพิ่มว่าหนังสือDesign Patternsจาก "Gang of four" เป็นพระคัมภีร์สำหรับทุกคนที่สนใจเรื่องรูปแบบการออกแบบอย่างจริงจัง


13
หรือสำหรับใครที่อยากบอกเพื่อนโปรแกรมเมอร์ว่าได้อ่านหนังสือ Gang of Four :)
Dave Markle

14

เคล็ดลับของฉัน:

อ่านมากเกี่ยวกับรูปแบบจากแหล่งต่างๆ

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

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

นั่นคือสิ่งที่ได้ผลสำหรับฉันแล้วล่ะ


9

รูปแบบการออกแบบ

ไซต์บทช่วยสอนนี้ประกอบด้วยส่วนย่อยต่อไปนี้

  • ความตั้งใจของแต่ละรูปแบบการออกแบบ
  • โครงสร้างโลกแห่งความจริงสำหรับรูปแบบการออกแบบ
  • งบปัญหา
  • การอภิปรายโดยละเอียดเกี่ยวกับปัญหา
  • รายการตรวจสอบวิธีมาถึงรูปแบบ
  • กฎของนิ้วหัวแม่มือในขณะที่มาถึงรูปแบบ
  • ข้อมูลโค้ดสำหรับรูปแบบการออกแบบซึ่งรวมถึงC #, C ++, Delphi, Java และ PHP

เว็บไซต์นี้ยังมีคำแนะนำเกี่ยวกับรูปแบบการป้องกัน , UMLและRefactoring


ฉันพบว่าเว็บไซต์มีประโยชน์มาก ตัวอย่างที่ดีและชัดเจน
Augustas

8

Bruce Eckel มีหนังสือเกี่ยวกับรูปแบบการออกแบบแม้ว่าจะเป็น Java แต่ก็เหมือนกับหนังสือทั้งหมดของเขาที่น่าทึ่ง และสิ่งที่ดีที่สุดคือฟรี!


ขอบคุณสำหรับลิงค์ไม่ทราบว่ามีการออนไลน์ฟรี
James McMahon


5

หนังสือแนะนำตัวที่ฉันพบว่ามีประโยชน์และเขียนได้ดีคือ รูปแบบการออกแบบอธิบายโดย Alan Shalloway และ James Trott (Addison Wesley)

ข้อความแสดงแทน

ไม่ได้เริ่มต้นจากแก๊งสี่หนังสือมันไม่ได้เป็นหนังสือเบื้องต้นโดยวิธีใด ๆ


4

ฉันอยากจะแนะนำให้ดู quintology ของ Jean Paul Boodhoo (?) เกี่ยวกับ Demystifying Design Patterns ใน DNRtv URL ที่ให้ไว้ด้านล่าง วิดีโอคาสต์สัมผัสกับ Singleton, Abstract Factory ท่ามกลางคนอื่น ๆ - ความแตกต่างคือคุณสามารถดูรหัสของเขาในขณะที่เขาพูดถึงทฤษฎี เหมาะสำหรับทานอาหารกลางวันในวันธรรมดาที่ฝนตก

http://www.dnrtv.com/default.aspx?showNum=63 http://www.dnrtv.com/default.aspx?showNum=65 http://www.dnrtv.com/default.aspx?showNum= 68 http://www.dnrtv.com/default.aspx?showNum=71 http://www.dnrtv.com/default.aspx?showNum=92


DnrTV ล่ม! เป็นเรื่องที่น่าเสียดายมากเพราะการแคสต์หน้าจอของ Boodhoo นั้นให้ข้อมูล คุณเคยเห็นวิดีโอที่โฮสต์ที่อื่นหรือไม่? คุณมีไฟล์วิดีโอหรือไม่ฉันยินดีที่จะให้พวกเขาออนไลน์
Stephan Luis

4

คำอธิบายประกอบสำหรับความคิดเห็นข้างต้น

ข้อมูลอ้างอิงโดยย่อสำหรับรูปแบบ GOF

นี่เป็นจุดเริ่มต้นที่ดีที่คุณสามารถเริ่มต้นdofactory.com/patterns/patterns.aspx - คุณสามารถค้นหาลิงก์ไปยังแต่ละรูปแบบพร้อมกับการใช้งานที่เกี่ยวข้อง

อย่าลืมว่านี่คือรูปแบบ GOF คุณอาจต้องอ่านและทำความเข้าใจรูปแบบขั้นสูงด้วยเมื่อคุณมีความเชี่ยวชาญเพียงพอใน OOAD รูปแบบการออกแบบ Head First เป็นการเริ่มต้นที่ดีและหลังจากดำเนินการไปแล้วให้ใช้รูปแบบสถาปัตยกรรมแอปพลิเคชันสำหรับองค์กรของ Martin Fowler

การใช้รูปแบบการออกแบบ - กระบวนการคิด

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

การประยุกต์ใช้รูปแบบการออกแบบส่วนที่ 1

การประยุกต์ใช้รูปแบบการออกแบบตอนที่ II

หวังว่านี่จะช่วยได้


3

รูปแบบการออกแบบ Head First เป็นรูปแบบที่ดีเหมือนที่คนอื่น ๆ กล่าวไว้แล้ว นอกจากนี้แน่นอนหนังสือต้นฉบับและรูปแบบการออกแบบ C # นอกจากนี้ยังมีเว็บไซต์ที่ดีดังกล่าวแล้ว

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

เรียนอย่างมีความสุข!


3

ก่อนใช้เงินซื้อหนังสือฉันขอแนะนำหน้ารูปแบบการออกแบบที่ยอดเยี่ยมของ Wikipedia นอกจากนี้สำหรับบางสิ่งบางอย่างที่แตกต่างกันของ Google สำหรับ "รูปแบบการออกแบบ screencasts" หรือค้นหาคำว่า "รูปแบบการออกแบบ" บนYouTube การได้รับข้อมูลเดียวกันที่นำเสนอแตกต่างกันมักจะช่วยให้เงินลดลง

หนังสือ The Gang of Fourเป็นข้อความที่ชัดเจนเกี่ยวกับรูปแบบที่เป็นที่รู้จักมากที่สุด แต่ไม่ใช่เรื่องง่ายที่จะอ่านและด้วยตัวอย่าง C ++ ไม่ใช่ที่ชื่นชอบของทุกคน

ข้อความHead First Design Patternsสามารถเข้าถึงได้มากกว่า แต่มีเพียงบางส่วนของรูปแบบ Gang of Four เท่านั้น

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

เพียงแค่เสียบออกไป



2

รูปแบบของ Enterprise Application Architecture (ปกแข็ง) โดย Martin Fowler

Refactoring to Patterns (ปกแข็ง) โดย Joshua Kerievsky

การผสานรวมอย่างต่อเนื่อง: การปรับปรุงคุณภาพซอฟต์แวร์และการลดความเสี่ยง (ปกอ่อน) โดย Paul Duval et.al.

นอกเหนือจากสถาปัตยกรรมซอฟต์แวร์: การสร้างและรักษาแนวทางแก้ปัญหาที่ชนะ (ปกอ่อน) โดย Luke Hohmann


2

รูปแบบการออกแบบก็เหมือนกับฟังก์ชันไลบรารีใด ๆ อ่านเกี่ยวกับพวกเขาจากนั้นเมื่อเกิดปัญหาขึ้นรูปแบบการออกแบบจะอยู่ใน "Toolchest" ของคุณ มีหนังสือรูปแบบการออกแบบมากมายที่มีลวดลายทั้งหมดตามแพทเทิร์นการออกแบบ "แก๊งสี่" ดั้งเดิม

สำหรับโปรแกรมเมอร์ทุกคนฉันคิดว่าและหนังสือ Refactoring โดย Fowler เป็นข้อกำหนดขั้นต่ำที่แท้จริง


หนังสือ POSA ไม่ได้ "มีลวดลายตามหนังสือ GOF" - หนังสือ GOF ได้รับการตีพิมพ์เป็นครั้งแรก - อยู่ระหว่างการผลิตในเวลาเดียวกัน
ทิม

1
เพื่อหลีกเลี่ยงความสับสนฉันอยากจะบอกว่ารูปแบบการออกแบบส่วนใหญ่ไม่ได้ใช้ในไลบรารี หลายรูปแบบเกิดจากการรวมคลาสไลบรารีเข้าด้วยกัน
Bill the Lizard

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


2

รูปแบบการออกแบบดั้งเดิมหนังสือเป็นหนังสือที่ต้องอ่านสำหรับโปรแกรมเมอร์ทุกคน

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

คุณสามารถเริ่มต้นด้วยหน้า Wikipediaแต่ดูแลตัวเองด้วยหนังสือดีๆด้วย


2

การใช้ UML และ Patternsโดย Craig Larman เริ่มต้นจากพื้นฐานของการวิเคราะห์ออกแบบและใช้สถานการณ์จำลองแบบง่าย แนะนำรูปแบบพื้นฐานส่วนใหญ่ด้วยวิธีง่ายๆ


2

หากคุณอ่านเกี่ยวกับรูปแบบการออกแบบคุณจะสังเกตเห็นว่า Java ดูเหมือนจะมีการนำไปใช้งานอยู่บ้าง

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

รูปแบบการออกแบบไม่เหมาะสำหรับนักเขียนโค้ดที่ขี้เกียจ


2

สำหรับผมและเพื่อนร่วมงานของฉันศึกษาการออกแบบรูปแบบที่ต่อไปนี้ในรูปแบบการศึกษากลุ่ม พวกเขาเตรียมรายการของแต่ละรูปแบบที่เราควรเรียนรู้ตามลำดับและยังมีคำถามเปิดที่ทำให้มีการสนทนาในกลุ่มมากขึ้น



1

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

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

แก้ไขเพื่อชี้แจง - รูปแบบการออกแบบจำนวนมากเป็นผลมาจากปัญหาที่พบในบางโดเมน โปรแกรมเมอร์ใหม่แทบไม่สามารถคาดหวังได้ (IMO) รู้รูปแบบการออกแบบที่จะใช้สำหรับชุดปัญหาบางอย่าง เช่นเดียวกับที่เราได้รับอัลกอริทึมเพียงเล็กน้อยในการศึกษา CS เราจำเป็นต้องมีความเข้าใจในสิ่งต่างๆที่เราสามารถทำได้กับรูปแบบและประโยชน์ของมัน แต่เมื่อคน ๆ หนึ่งยังคงสร้างโลกแห่งความสวัสดีหรือค้นพบ stl รูปแบบการออกแบบก็ไม่จำเป็นต้องใช้ในทางปฏิบัติมากนัก แพทเทิร์นดีมาก แต่ไม่ใช่กระสุนเงิน

(ไม่ว่าจะเป็น CASE (เครื่องมือ), ไม่ใช่ / เป็น UML, ไม่ใช่ SCRUM, ไม่ใช่ TDD หรือ STL หรือ Java หรือ XML เป็นต้น) ทั้งหมดนี้เป็นเพียงแง่มุมของอาชีพของเราและเพื่อให้ถือว่าหัวข้อเหล่านี้เป็นเรื่องที่สอง การมาเป็นเรื่องไร้เดียงสา


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

ฉันคิดว่าฉันพูดถึงสิ่งนั้นในโพสต์ของฉัน ...
ทิม

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

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

1

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

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

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


1

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


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.