คุณสมบัติของหนังสือ
Head first design patternsบอกเราว่ารูปแบบคืออะไร วิธีใช้งาน และวิธีคิดเกี่ยวกับรูปแบบเหล่านั้น รูปแบบคือเทมเพลต ซึ่งเป็นวิธีแก้ปัญหาแบบสากลสำหรับชุดปัญหาเฉพาะ ในทางกลับกัน รูปแบบการออกแบบก็เป็นโซลูชันทางสถาปัตยกรรมที่ใช้กันทั่วไป ซึ่งสามารถใช้เพื่อเขียนแอปพลิเคชันที่ใช้งานง่ายและยืดหยุ่นได้ นักพัฒนาทั่วโลกแก้ไขปัญหาเดียวกันด้วยแนวทางเดียวกัน ตามที่คำอธิบายประกอบกล่าวไว้หากคุณไม่ต้องการสร้างวงล้อขึ้นมาใหม่ ให้ใช้เทมเพลตการออกแบบสำเร็จรูป (รูปแบบ) ซึ่งหนังสือเล่มนี้มีไว้สำหรับใช้งานโดยเฉพาะ การนำเสนอเนื้อหาแยกกันเป็นที่น่าสังเกต: หนังสือในชุด Head First มีชื่อเสียงในด้านความเรียบง่ายและอ่านได้ในคราวเดียว “รูปแบบการออกแบบ” ก็ไม่มีข้อยกเว้น นอกจากนี้ยังยึดหลักการสำคัญดังต่อไปนี้:- ทัศนวิสัย
- รูปแบบการสนทนาในการนำเสนอ
- ภาพประกอบจำนวนมาก
- การมีส่วนร่วมของผู้อ่านที่ใช้งานอยู่
- อุทธรณ์ไปยังอารมณ์
- ดึงดูดความสนใจของผู้อ่าน
ประเด็นหลักและแนวคิดหลัก
“แน่นอนว่ามีคนแก้ไขปัญหาของคุณแล้ว” - นี่คือจุดเริ่มต้นของหนังสือเล่มนี้ โดยถ่ายทอดความหมายทั้งหมดของรูปแบบการออกแบบในการเขียนโปรแกรม เป้าหมายหลักคือการถ่ายทอดความหมายให้กับผู้อ่านอย่างถูกต้อง เพราะก่อนอื่น โปรแกรมเมอร์ต้องรู้ว่ารูปแบบมีไว้เพื่ออะไร และต้องนำไปใช้ ณ จุดใด โดยพื้นฐานแล้ว คุณต้องจัดเรียงเทมเพลตออกเป็นส่วนเล็กๆ ในหัวของคุณก่อน และหลังจากนั้นจึงนำไปใช้ในโปรแกรมเท่านั้น หากผู้เริ่มต้นในการเขียนโปรแกรมมีความเข้าใจเกี่ยวกับรูปแบบเป็นอย่างดี การใช้งานของพวกเขาอาจทำให้โค้ดซับซ้อนได้อย่างมาก (แต่ควรทำให้มันง่ายขึ้น!) สำหรับคำถามที่ว่า“เหตุใดจึงควรใช้รูปแบบการออกแบบ” หนังสือเล่มนี้ให้คำตอบที่ชัดเจน: “การรู้แนวคิดต่างๆ เช่น นามธรรม มรดก และความหลากหลายไม่ได้ทำให้คุณเป็นนักออกแบบ OO ที่ดี รูปแบบดังกล่าวมีประสบการณ์การออกแบบ OO ที่ได้รับการพิสูจน์แล้ว”"สรุป"
หนังสือเล่มนี้แบ่งออกเป็น 14 บทพร้อมบทนำ ในตอนแรกผู้เขียนหนังสือพยายามเตรียมผู้อ่าน ปรับสมองให้รับรู้ข้อมูลเกี่ยวกับการออกแบบลวดลายได้อย่างถูกต้อง บทแรกอธิบายหลักการพื้นฐานของรูปแบบและวัตถุประสงค์ของรูปแบบเหล่านั้น หนึ่งในรูปแบบที่ใช้มากที่สุด - กลยุทธ์ - ได้รับการตรวจสอบอย่างง่ายดายและไม่เป็นการรบกวน บทที่สองถึงสิบเอ็ดมีเนื้อหาเกี่ยวกับการวิเคราะห์โดยละเอียดของรูปแบบแต่ละรายการ :- ผู้สังเกตการณ์ กระจายเหตุการณ์ระหว่างอ็อบเจ็กต์ที่สนใจการเกิดขึ้น
- มัณฑนากร. ดูการสืบทอดใน Java อีกครั้งและมอบความสามารถใหม่ๆ ให้กับคลาส Java โดยไม่ต้องแก้ไขโค้ด
- โรงงาน. รูปแบบจะบันทึกโค้ดจากการขึ้นต่อกันที่ไม่ต้องการ
- เดี่ยว. หรือที่รู้จักในชื่อ Singleton ช่วยให้คุณสามารถสร้างออบเจ็กต์คลาสเดียวสำหรับทั้งโปรแกรมได้
- ทีม. รูปแบบนี้ช่วยให้คุณสามารถสรุปการเรียกเมธอดได้อย่างสะดวก ซึ่งเป็นการขยายขีดความสามารถของมัน
- อะแดปเตอร์และซุ้ม การแก้ปัญหาความไม่เข้ากันของอินเทอร์เฟซตลอดจนวัตถุบรรจุภัณฑ์เพื่อทำให้อินเทอร์เฟซง่ายขึ้น
- วิธีเทมเพลต การห่อหุ้มบล็อกอัลกอริทึม ช่วยให้คลาสย่อยเชื่อมโยงกับอัลกอริธึมการประมวลผลที่ต้องการได้ตลอดเวลา
- ตัววนซ้ำและตัวเชื่อมโยง รูปแบบนี้เป็นเครื่องมือที่สะดวกสำหรับการวนซ้ำคอลเลกชัน โดยไม่คำนึงถึงประเภท นอกจากนี้ บทนี้ยังให้ข้อมูลบางอย่างเกี่ยวกับซูเปอร์คอลเลกชั่นอีกด้วย
- สถานะ. วัตถุมีความสามารถในการควบคุมพฤติกรรมผ่านการเปลี่ยนแปลงสถานะภายใน
- รอง. รูปแบบที่สะดวกมากสำหรับการควบคุมการเข้าถึงวัตถุ
ข้อดีและข้อเสีย
เช่นเดียวกับหลายๆ คนที่เรียนที่ JavaRush มีทัศนคติที่เย็นชาต่อการบรรยายที่น่าเบื่อ การอัดสื่อการสอน และความรุนแรงอื่นๆ ที่ขัดต่อจิตใจของนักเรียนที่กระหายความรู้ ในความคิดของฉัน พลังงานที่ใช้ไปกับการท่องจำข้อความที่เข้าใจยากนั้นดีที่สุดที่จะใช้ไปกับการค้นหาแหล่งการเรียนรู้อื่น หนังสือเล่มนี้เป็นเล่มที่คุ้มค่ากับเวลาและความพยายามของคุณ รูปแบบการนำเสนอที่ยอดเยี่ยม การจัดการความสนใจของผู้อ่านอย่างมีความสามารถ และการกล่าวประเด็นสำคัญซ้ำ ๆ เป็นข้อได้เปรียบหลักของหนังสือเล่มนี้ - ความง่ายในการดูดซึมเนื้อหา ภาพประกอบจำนวนมากเป็นข้อดีเพิ่มเติม ในความคิดของฉันภาพทุกภาพในหนังสือมีที่มา: ภาพเหล่านี้ทั้งหมดช่วยให้คุณสามารถเสริมคำพูดของผู้แต่งและทำความเข้าใจสาระสำคัญของเนื้อหาได้อย่างลึกซึ้งยิ่งขึ้น ตามที่ฉันได้เขียนไว้ข้างต้น หนังสือเล่มนี้ไม่ใช่หนังสืออ้างอิง ผู้แต่งไม่ได้ตั้งใจที่จะแสดงรายการรูปแบบทั้งหมด หน้าที่หลักคือการให้ความเข้าใจและพูดคุยเกี่ยวกับรูปแบบพื้นฐานเพื่อให้รูปแบบอื่นที่ซับซ้อนกว่าเข้าใจได้ง่ายขึ้น และเธอก็รับมือกับเรื่องนี้ได้ 100% ข้อเสียประการหนึ่งก็คือ รูปแบบการออกแบบ Head First ในภาษารัสเซียนั้นอ่านได้ไม่ง่ายเหมือนในภาษาอังกฤษ แน่นอนว่านักพัฒนาทุกคนควรพูดภาษาอังกฤษได้ แต่โปรแกรมเมอร์มือใหม่ไม่ได้พัฒนาทักษะนี้จนสามารถอ่านหนังสือต้นฉบับได้เสมอไป อย่างไรก็ตามสิ่งนี้ถือได้ว่าเป็นการบังคับลบเนื่องจากมีการนำเสนอเนื้อหาค่อนข้างแม่นยำและความหมายยังคงอยู่หนังสือเพิ่มเติมเกี่ยวกับรูปแบบการออกแบบ
ฉันเป็นผู้แสดงความเชื่อที่ว่า เป็นการดีกว่าที่จะศึกษาหัวข้อพื้นฐานจากหลายแหล่งและมองหารูปแบบการนำเสนอที่เหมาะสมในนั้น เมื่อคุณต้องการเจาะลึกรูปแบบและอ่านทฤษฎีเพิ่มเติม เชื่อฉันสิ คุณจะมีบางสิ่งบางอย่างที่จะครอบครองในตอนเย็นของคุณ-
เทคนิคการออกแบบเชิงวัตถุ รูปแบบการออกแบบ (Gamma E., Helm R., Johnson R., Vlissides J.)
นี่เป็นสิ่งพิมพ์ที่จริงจังกว่านี้ หนังสืออ้างอิงเกี่ยวกับรูปแบบ หนังสือที่ได้รับการยกย่องอย่างมากจาก "แก๊งสี่" หลายคนเรียกสิ่งนี้ว่าพระคัมภีร์แห่งการออกแบบ OO
บนอินเทอร์เน็ตความคิดเห็นของนักพัฒนาแบ่งออกเป็น 3 ค่าย:
- บางคนแย้งว่าหนังสือเล่มนี้ล้าสมัยและรูปแบบการนำเสนอทำให้อ่านไม่ได้
- คนอื่นๆ แนะนำให้ใช้หนังสือเล่มนี้เป็นหนังสืออ้างอิงเกี่ยวกับรูปแบบเท่านั้น ไม่มีอะไรเพิ่มเติม
- ยังมีอีกหลายคนที่บอกว่าหนังสือเล่มนี้เป็นจอกศักดิ์สิทธิ์ของรูปแบบการออกแบบ และใครก็ตามที่อยากเป็น Java Developer อาวุโสควรอ่านสักวันหนึ่ง
สำคัญ:ตัวอย่างในหนังสือเล่มนี้เขียนด้วยภาษา C++
-
จาวา EE รูปแบบการออกแบบสำหรับมืออาชีพ (Murat Yener, Alex Fidom)
หนังสือเล่มนี้จัดทำขึ้นเพื่อการออกแบบแอปพลิเคชันระดับองค์กรโดยเฉพาะ โดยครอบคลุมตัวอย่างมากมายของปัญหาแอปพลิเคชันในชีวิตจริง
-
การออกแบบรูปแบบใน Java (Grand M.)
หนังสือเล่มนี้แสดงให้เห็นอย่างมีสีสันว่าการใช้รูปแบบช่วยประหยัดเวลาของนักพัฒนาได้อย่างไร ให้ภาพรวมของภาษา UML และอธิบายรูปแบบการออกแบบ 47 รูปแบบ
รูปแบบการออกแบบใน JavaRush
ในหลักสูตร JavaRush รูปแบบการออกแบบจะได้เรียนรู้ที่ระดับ 7ของภารกิจ Java Collections การบรรยายที่ 1และ2เน้นไปที่รูปแบบที่พบบ่อยที่สุด และในการบรรยายที่4คุณสามารถแก้ปัญหาในหัวข้อนี้ได้ ด้านล่างนี้เป็นบทความที่น่าสนใจเพื่อ “เสริมความแข็งแกร่งให้ตัวเอง”:-
บทความทั่วไปในหัวข้อรูปแบบพร้อมหมวดหมู่ ตัวอย่าง ทุกอย่างที่เราชอบ
-
บทความสองเรื่องเกี่ยวกับรูปแบบ: ภาพรวม ส่วนที่ 1และรายละเอียดเพิ่มเติม ส่วน ที่2
-
ออกแบบลวดลายโดยใช้ ลวดลาย ซิงเกิลตัน เป็น ตัวอย่าง
-
แนวคิดของรูปแบบการออกแบบเกี่ยวข้องกับไดอะแกรม UML บทความนี้จะช่วยให้คุณเข้าใจว่ามันคืออะไร
GO TO FULL VERSION