คำถามติดแท็ก design-patterns

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

21
รูปแบบ MVC บน Android
เป็นไปได้หรือไม่ที่จะใช้รูปแบบ model-view – controller ใน Java สำหรับ Android? หรือมีการนำไปใช้แล้วผ่านกิจกรรมหรือไม่ หรือมีวิธีที่ดีกว่าในการใช้รูปแบบ MVC สำหรับ Android

10
ทำไมต้องสร้าง“ ตัวเลือก Unwrapped นัย” โดยนัยเนื่องจากนั่นหมายความว่าคุณรู้ว่ามีค่า
ทำไมคุณต้องสร้าง "ตัวเลือก Unwrapped ทางเลือก" โดยปริยายเมื่อสร้างตัวแปรหรือค่าคงที่ปกติ? หากคุณรู้ว่าสามารถถอดออกได้สำเร็จทำไมสร้างตัวเลือกตั้งแต่แรก ตัวอย่างเช่นทำไมจึงเป็นเช่นนี้: let someString: String! = "this is the string" จะเป็นประโยชน์มากกว่า: let someString: String = "this is the string" หาก” ตัวเลือกบ่งชี้ว่าค่าคงที่หรือตัวแปรได้รับอนุญาตให้มี 'ไม่มีค่า'” แต่“ บางครั้งก็ชัดเจนจากโครงสร้างของโปรแกรมที่ตัวเลือกจะมีค่าหลังจากค่านั้นถูกตั้งค่าครั้งแรก” สิ่งที่เป็นจุดของ ทำให้เป็นตัวเลือกในตอนแรกหรือไม่ หากคุณรู้ว่าตัวเลือกจะมีค่าอยู่ตลอดไม่ว่าจะเป็นตัวเลือกหรือไม่

10
ViewPager และแฟรกเมนต์ - วิธีที่ถูกต้องในการจัดเก็บสถานะของแฟรกเมนต์คืออะไร
แฟรกเมนต์ดูเหมือนจะดีมากสำหรับการแยกตรรกะ UI ออกเป็นโมดูล แต่ตลอดViewPagerจนวงจรชีวิตของมันยังคงเป็นสิ่งที่ผิดสำหรับฉัน ดังนั้นความคิดของปราชญ์จึงเป็นสิ่งจำเป็นอย่างยิ่ง! แก้ไข ดูวิธีแก้ใบ้ด้านล่าง ;-) ขอบเขต กิจกรรมหลักมีViewPagerชิ้นส่วนด้วย แฟรกเมนต์เหล่านั้นสามารถใช้ตรรกะที่แตกต่างกันเล็กน้อยสำหรับกิจกรรมอื่น ๆ (ส่ง) ดังนั้นข้อมูลของแฟรกเมนต์จะถูกกรอกผ่านอินเตอร์เฟสการติดต่อกลับภายในกิจกรรม และทุกอย่างทำงานได้ดีในการเปิดตัวครั้งแรก แต่! ... ปัญหา เมื่อกิจกรรมถูกสร้างขึ้นใหม่ (เช่นการเปลี่ยนการวางแนว) ให้ทำViewPagerเศษของ รหัส (คุณจะพบด้านล่าง) บอกว่าทุกครั้งที่มีการสร้างกิจกรรมฉันพยายามที่จะสร้างViewPagerอะแดปเตอร์ชิ้นส่วนใหม่เช่นเดียวกับชิ้นส่วน (อาจเป็นปัญหา) แต่ FragmentManager ได้เก็บชิ้นส่วนเหล่านี้ไว้ที่ไหนซักแห่ง (ที่ไหน?) และ เริ่มกลไกการนันทนาการสำหรับผู้ที่ ดังนั้นกลไกการสันทนาการจึงเรียกส่วนของ "เก่า" ของ onAttach, onCreateView ฯลฯ ด้วยการติดต่อกลับของฉันสำหรับการเริ่มต้นข้อมูลผ่านวิธีการดำเนินการของกิจกรรม แต่วิธีนี้ชี้ไปที่ส่วนที่สร้างขึ้นใหม่ซึ่งสร้างขึ้นผ่านวิธีการ onCreate ของกิจกรรม ปัญหา บางทีฉันใช้รูปแบบที่ไม่ถูกต้อง แต่แม้กระทั่งหนังสือ Android 3 Pro ก็ไม่ได้มีอะไรมาก ได้โปรดให้หมัดหนึ่ง - …

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

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

18
เกี่ยวกับรูปแบบการออกแบบ: เมื่อใดที่ฉันควรใช้ซิงเกิลตัน
ตัวแปรระดับโลกที่ได้รับเกียรติ - กลายเป็นระดับโลกที่รุ่งโรจน์ บางคนบอกว่าการออกแบบเชิงวัตถุแตก ให้ฉันสถานการณ์อื่น ๆ นอกเหนือจากคนตัดไม้เก่าที่ดีที่มันเหมาะสมที่จะใช้ซิงเกิล

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

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

10
บริบท Singletons vs. Application บริบทใน Android?
การเรียกคืนโพสต์นี้ระบุปัญหาต่าง ๆ ของการใช้ซิงเกิลตัน และได้เห็นตัวอย่างของแอปพลิเคชัน Android ที่ใช้รูปแบบซิงเกิลฉันสงสัยว่าควรใช้ Singletons แทนอินสแตนซ์เดี่ยวที่แชร์ผ่านสถานะแอปพลิเคชันทั่วโลก ผ่าน context.getApplication ()) กลไก / ข้อดีทั้งข้อเสีย / ข้อเสียอะไร? พูดตามตรงฉันคาดหวังคำตอบเดียวกันในรูปแบบซิงเกิลโพสต์นี้ด้วยแอปพลิเคชันเว็บไม่ใช่ความคิดที่ดี! แต่ใช้กับ Android ฉันถูกไหม? มีอะไรแตกต่างใน DalvikVM เป็นอย่างอื่น? แก้ไข: ฉันต้องการมีความคิดเห็นในหลาย ๆ ด้านที่เกี่ยวข้อง: การประสานข้อมูล สามารถนำมาใช้ การทดสอบ

5
รูปแบบการออกแบบแอปพลิเคชันบนเว็บ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันกำลังออกแบบแอปพลิเคชันบนเว็บที่เรียบง่าย ฉันยังใหม่กับโดเมนบนเว็บนี้ฉันต้องการคำแนะนำของคุณเกี่ยวกับรูปแบบการออกแบบเช่นความรับผิดชอบที่ควรแจกจ่ายระหว่าง Servlets เกณฑ์ในการสร้าง Servlet ใหม่ ฯลฯ ที่จริงแล้วฉันมีเอนทิตี้น้อยในหน้าแรกของฉันและสอดคล้องกับแต่ละรายการเรามีตัวเลือกไม่กี่อย่างเช่นเพิ่มแก้ไขและลบ ก่อนหน้านี้ฉันใช้ Servlet หนึ่งตัวต่อหนึ่งตัวเลือกเช่น Servlet1 สำหรับเพิ่มเอนทิตี้ 1, Servlet2 สำหรับแก้ไขเอนทิตี 1 และต่อ ๆ ไปและด้วยวิธีนี้เราได้รับ servlet จำนวนมาก ตอนนี้เรากำลังเปลี่ยนการออกแบบของเรา คำถามของฉันคือวิธีที่คุณเลือกวิธีการเลือกความรับผิดชอบของเซิร์ฟเล็ตอย่างแน่นอน เราควรมีหนึ่งเซิร์ฟเล็ตต่อเอนทิตีซึ่งจะประมวลผลตัวเลือกทั้งหมดและส่งต่อคำขอไปยังชั้นบริการ หรือเราควรมีหนึ่งเซิร์ฟเล็ตสำหรับหน้าทั้งหมดซึ่งจะดำเนินการตามคำขอหน้าทั้งหมดแล้วส่งต่อไปยังชั้นบริการที่เกี่ยวข้อง นอกจากนี้ควรร้องขอวัตถุส่งต่อไปยังชั้นบริการหรือไม่

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

19
อะไรคือข้อเสียในการใช้การฉีดพึ่งพา? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ฉันพยายามที่จะแนะนำ DI เป็นรูปแบบที่นี่ในที่ทำงานและหนึ่งในนักพัฒนานำของเราต้องการทราบ: อะไร - ถ้ามี - มีข้อเสียในการใช้รูปแบบการฉีดพึ่งพาหรือไม่ หมายเหตุฉันกำลังมองหาที่ - ถ้าเป็นไปได้ - รายการที่ละเอียดถี่ถ้วนไม่ใช่การอภิปรายเชิงอัตนัยในหัวข้อ ชี้แจง : ฉันกำลังพูดถึงรูปแบบการพึ่งพา(ดูบทความนี้โดย Martin Fowler) ไม่ใช่กรอบที่เฉพาะเจาะจงไม่ว่าจะเป็น XML (เช่นฤดูใบไม้ผลิ) หรือตามรหัส (เช่น Guice) หรือ "ม้วนตัวเอง" . แก้ไข : บางการอภิปรายเพิ่มเติม / คุยโว / อภิปรายเกิดขึ้น/ r / การเขียนโปรแกรมที่นี่

26
Singleton Objective-C ของฉันควรมีลักษณะอย่างไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ วิธีการเข้าถึงเดี่ยวของฉันมักจะแตกต่างจาก: static MyClass *gInstance = NULL; + (MyClass *)instance { @synchronized(self) { if (gInstance == NULL) gInstance = [[self alloc] init]; } return(gInstance); } ฉันจะทำอะไรเพื่อปรับปรุงสิ่งนี้

10
วิธีการใช้รูปแบบวิธีการจากโรงงานใน C ++ อย่างถูกต้อง
มีสิ่งหนึ่งใน C ++ ที่ทำให้ฉันรู้สึกไม่สบายตัวเป็นเวลานานเพราะฉันไม่รู้วิธีการทำอย่างสุจริตแม้ว่ามันจะฟังดูง่าย: ฉันจะใช้วิธีการโรงงานใน C ++ ได้อย่างถูกต้องได้อย่างไร เป้าหมาย: เพื่อให้ลูกค้าสามารถสร้างอินสแตนซ์ของวัตถุโดยใช้วิธีการจากโรงงานแทนตัวสร้างของวัตถุโดยไม่มีผลกระทบที่ยอมรับไม่ได้และประสิทธิภาพในการทำงาน โดย "รูปแบบวิธีการของโรงงาน" ฉันหมายถึงทั้งวิธีคงที่จากโรงงานภายในวัตถุหรือวิธีที่กำหนดไว้ในคลาสอื่นหรือฟังก์ชั่นระดับโลก เพียงแค่โดยทั่วไป "แนวคิดของการเปลี่ยนเส้นทางวิธีปกติของการสร้างอินสแตนซ์ของคลาส X ไปที่อื่นนอกเหนือจากตัวสร้าง" ให้ฉันอ่านคำตอบที่เป็นไปได้ที่ฉันคิด 0) อย่าสร้างโรงงานสร้างสิ่งก่อสร้าง สิ่งนี้ฟังดูดี (และมักจะเป็นทางออกที่ดีที่สุด) แต่ไม่ใช่วิธีการรักษาทั่วไป ประการแรกมีกรณีที่การก่อสร้างวัตถุเป็นงานที่ซับซ้อนพอที่จะพิสูจน์การแยกไปยังชั้นอื่น แต่ถึงกระนั้นก็ยังมีการวางความจริงนั้นไว้แม้กระทั่งสำหรับวัตถุอย่างง่ายที่ใช้เพียงแค่ตัวสร้างมักจะไม่ทำ ตัวอย่างที่ง่ายที่สุดที่ฉันรู้คือคลาสเวกเตอร์ 2 มิติ เรียบง่าย แต่ซับซ้อน ฉันต้องการสร้างมันทั้งจากพิกัดคาร์ทีเซียนและขั้ว เห็นได้ชัดว่าฉันไม่สามารถทำ: struct Vec2 { Vec2(float x, float y); Vec2(float angle, float magnitude); // not a valid overload! // ... …

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

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