รูปแบบการออกแบบ - คุณใช้มันหรือไม่


44

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

พวกเขาส่วนใหญ่ใช้โปรแกรมเมอร์หรือไม่

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

และคุณ (โปรแกรมเมอร์) พบว่าคุณกำลังมองหารูปแบบ (ที่ฉันควรจะมองหาโดยวิธี?) เมื่อคุณเริ่มการพัฒนา? ถ้าเป็นเช่นนี้นี่เป็นนิสัยที่ฉันต้องเริ่มยอมรับ

UPDATE: ฉันคิดว่าเมื่อฉันถามว่าโปรแกรมเมอร์ใช้งานพวกเขาหรือไม่ฉันถามว่าเมื่อคุณมีปัญหาในการแก้ปัญหาที่คุณคิดว่า "โอ้ฉันควรใช้รูปแบบนั้น"


7
ไม่ใช่คำถามที่ซ้ำกันแน่นอน แต่คำตอบของฉันจะเหมือนกัน programmers.stackexchange.com/questions/70877/…
pdr

4
"รูปแบบการออกแบบ" ที่ overhyped overhyped ส่วนใหญ่จะเกี่ยวข้องกับการเขียนโปรแกรม OOP เท่านั้น และมีเหตุผลที่ดีมากมายที่จะอยู่ห่างจาก OOP ให้นานที่สุด
SK-logic

5
ฉันพบว่าตัวเองกำลังใช้ Big Ball of Mud บ่อยกว่าที่ฉันต้องการ แค่ล้อเล่น.
sashoalm

คำตอบเดียวคือใช่ด้วยคำแถลงตามเงื่อนไขของ "เมื่อเหมาะสม"
Rig

คำตอบ:


114

เมื่อฉันเป็นโปรแกรมเมอร์มือใหม่ฉันชอบรูปแบบการออกแบบ ฉันไม่เพียงแค่ใช้รูปแบบการออกแบบ ฉันลงโทษพวกเขา ทุกที่และทุกเวลาที่ฉันทำได้ ฉันไร้ความปราณี Aha! รูปแบบการสังเกตการณ์! รับมันไป! ใช้ผู้ฟัง! พร็อกซี่! AbstractFactory! เหตุใดจึงต้องใช้ชั้นหนึ่งของนามธรรมเมื่อห้าจะทำ? ฉันได้พูดคุยกับโปรแกรมเมอร์ที่มีประสบการณ์หลายคนและพบว่าทุกคนที่อ่านGoF Bookต้องผ่านขั้นตอนนี้

โปรแกรมเมอร์มือใหม่ไม่ได้ใช้รูปแบบการออกแบบ พวกเขาละเมิดรูปแบบการออกแบบ

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

โปรแกรมเมอร์ที่มีประสบการณ์ไม่ใช้รูปแบบการออกแบบ รูปแบบการออกแบบใช้


2
@schlingel - ทำไมคุณเรียก OP Sir
Oded

10
@Oded ฉันขอสงวนสิทธิ์ที่จะเรียกว่า "ท่าน" ภายใต้สถานการณ์เหล่านี้และสนุกไปกับมัน
Lunivore

3
รับทราบ. ไม่มีความผิดหมายความว่า!
Oded

1
ในโซเวียตรัสเซีย .. :)
Sorantis

5
คำตอบที่ดี แต่ในบรรทัดสุดท้ายคุณพยายามลึกซึ้ง แต่มันไร้สาระ "โปรแกรมเมอร์ที่มีประสบการณ์ไม่เลือกรูปแบบการออกแบบ
Garrett Hall

43

ไม่ว่าใครจะรู้จักพวกเขาหรือไม่ก็ตามโปรแกรมเมอร์ส่วนใหญ่จะใช้รูปแบบ

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

รูปแบบทั่วไปบางส่วนถูกสร้างขึ้นในบางภาษา - ตัวอย่างเช่นรูปแบบตัววนซ้ำในรูปแบบ C # ด้วยforeachคำหลัก

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


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

27
@DeadMG ทำไมถึงเป็นเช่นนั้น
Kris Harper

11
@DeadMG: ฉันต้องตาบอดด้วยความคิดที่โง่เขลา - ฉันไม่สามารถเห็นได้ว่าทำไมคุณคิดว่ามันโง่ ;-)
Treb

2
@ root45 - คุณเห็นเพื่อนการforeachสร้างทำให้การเขียนโปรแกรมง่ายเกินไป เราจะรู้สึกดีกว่าคนอื่นอย่างไรถ้างานที่ซับซ้อนเช่นวนซ้ำในคอลเล็กชั่นเป็นเรื่องง่าย ฉันยังคงมีรหัสหนึ่งประกอบในแอป CRUD ของฉันทั้งหมด เห็นได้ชัดว่าความเชื่อมั่นของ @DeadMG เป็นหนึ่งในอัจฉริยะในทางปฏิบัติที่บริสุทธิ์
ChaosPandion

8
@DeadMG - LINQ ไม่ได้อยู่ที่นั้นเมื่อ. NET 1.0 / 1.1 yieldไม่ได้มีอยู่แล้วทั้ง คุณคิดว่าการแตกรหัสเก่าโดยการลบคำหลักเป็นตัวเลือกที่ดีกว่าหรือไม่
Oded

22

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

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

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

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


+1 สำหรับการสรุปที่สำคัญของสิ่งที่ฉันต้องการจะพูด: มุ่งเน้นที่ปัญหาแล้วหลังจากนั้นถ้าหากปัญหาดูเหมือนว่ารูปแบบหนึ่งสามารถแก้ไขได้ให้ใช้รูปแบบนั้น
Joshua Drake

1
+1 สำหรับการระบุความเป็นจริงความจริงที่ว่ารูปแบบการออกแบบเป็นชื่อที่มอบให้กับคนสิ่งที่กำลังทำอยู่แล้ว
miraculixx

12

โดยทั่วไปแล้วไม่มี มีหลายครั้งที่รูปแบบเกิดขึ้นจากรหัสของฉัน แต่โดยทั่วไปฉันไม่ได้มองหารูปแบบเหล่านั้นและแน่นอนว่าฉันจะไม่พูดว่า "โอ้รูปแบบสะพานจะแก้ปัญหาของฉันได้!"

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


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

1
@ จอร์โจ: ในอีกทางหนึ่งมีการใช้รูปแบบบางอย่างเพื่อแก้ไขความจริงที่ว่าภาษาขาดวิธีการแสดงสิ่งที่เป็นระเบียบ
Daenyth

8

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


2
ลิงค์ทำวันของฉัน
dukeofgaming

1
อุ๊ยตาย หน้าเว็บนั้นต้องการการจัดรูปแบบข้อความ
Nailer

7

คุณใช้พวกเขาหรือไม่

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

หากบางแห่งในเว็บฉันหาวิธีแก้ปัญหาของฉันนี่คือรูปแบบการออกแบบหรือไม่

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

คุณ (โปรแกรมเมอร์) พบว่าคุณกำลังมองหารูปแบบหรือไม่

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

ฉันควรจะดู btw ที่ไหน

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


5

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

ฉันไม่อยากจะเชื่อเลยว่าฉันแค่ยอมรับในที่สาธารณะ ฉันคิดว่าฉันอาจสูญเสียความน่าเชื่อถือใด ๆ ที่ฉันอาจได้รับในช่วงหลายปีที่ผ่านมา


3

อย่ามองหาเทรนด์

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

คุณอาจใช้รูปแบบการออกแบบที่ยังไม่ได้คิดค้น / ระบุ

อย่าลองใช้พวกเขาลองคิดดูสิ

ปัญหาเกี่ยวกับรูปแบบการออกแบบคือบางครั้งโปรแกรมเมอร์ต้องการที่จะปรับปัญหาของพวกเขาให้เข้ากับพวกเขาเมื่อมันเป็นอย่างอื่น

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

มองหาพวกเขาในป่า

มีโครงการโอเพ่นซอร์สมากมายที่คุณจะพบกับรูปแบบการออกแบบที่นำไปใช้ ตัวอย่างหนึ่งที่อยู่ในใจคือ Joomla: คุณจะพบsingletons , ผู้สังเกตการณ์ ห้องสมุด GUI จะมีมัณฑนากรรูปแบบ , รูปแบบคำสั่งดำเนินการและอาจฟลายเวท

มีรูปแบบอื่น ๆ เช่นรูปแบบข้อมูลเช่นโครงการหลักคำสอนเพียงอย่างเดียวได้ใช้การบันทึกรูปแบบการใช้งาน (1.x) รูปแบบผู้จัดการนิติบุคคล (2.x), หน่วยงาน , พื้นที่เก็บข้อมูล , วัตถุแบบสอบถาม , การทำแผนที่ข้อมูลเมตา , ข้อมูล การทำแผนที่และคนทั่วไปมากขึ้นอื่น ๆ เช่นรูปแบบกลยุทธ์และมัณฑนากรรูปแบบ

มีโซลูชั่นที่น่าสนใจให้เลือกมากมาย ดูรูปแบบสถาปัตยกรรมองค์กรของ Martin Fowlerนอกจากนี้ยังมีรูปแบบข้อมูลอีกด้วย

เพียงแค่เรียนรู้พวกเขาเมื่อถึงเวลา

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

มาเป็นสถาปนิก

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


1

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

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

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

ฉันใช้รูปแบบวิธีเทมเพลตมานานหลายปีโดยที่ไม่รู้ว่ามันเป็น "รูปแบบการออกแบบ"

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

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


1

กำลังเพิ่มไปยัง Lunivore รหัสชอบอ้างจากหัวหนังสือเล่มแรก

        ## **Three steps to great software** ##     
  • ตรวจสอบให้แน่ใจว่าซอฟต์แวร์ทำตามที่ลูกค้าต้องการ
  • ใช้หลักการเชิงวัตถุที่ดี
  • มุ่งมั่นเพื่อการออกแบบที่บำรุงรักษาได้และนำมาใช้ซ้ำได้

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


0

พวกเขาส่วนใหญ่ใช้โปรแกรมเมอร์หรือไม่

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

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

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

ฉันอยากจะคิดถึงสิ่งที่คุณทำที่นั่นในแบบฝึกหัดทั่วไป ระวังการคัดลอกและวางรหัสแม้ว่า

และคุณ (โปรแกรมเมอร์) พบว่าคุณกำลังมองหารูปแบบ (ฉันควรจะดู btw หรือเปล่า?) เมื่อคุณเริ่มพัฒนาหรือไม่? ถ้าเป็นเช่นนี้นี่เป็นนิสัยที่ฉันต้องเริ่มยอมรับ

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


0

รูปแบบการเรียนรู้ไม่เพียง แต่เรียนรู้อะไรบางอย่าง คุณเรียนรู้สิ่งที่คุณสามารถทำได้กับภาษาการเขียนโปรแกรม ฉันเองได้เรียนรู้มากมายเกี่ยวกับการเขียนโปรแกรมเชิงวัตถุเพียงแค่เรียนรู้วิธีการทำงานของรูปแบบ ( รูปแบบคอมโพสิตในกรณีนี้)

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


0

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

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