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

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

2
Singleton by Jon Skeet ชี้แจง
public sealed class Singleton { Singleton() {} public static Singleton Instance { get { return Nested.instance; } } class Nested { // Explicit static constructor to tell C# compiler // not to mark type as beforefieldinit static Nested() {} internal static readonly Singleton instance = new Singleton(); } } ฉันต้องการนำรูปแบบซิงเกิลของ …

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

22
เหตุใด C # จึงไม่มีคำหลัก 'เพื่อน' สไตล์ C ++ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ เพื่อนคำหลัก C ++ช่วยให้ผู้class Aที่จะกำหนดให้class Bเป็นเพื่อนของตน นี้จะช่วยให้Class Bการเข้าถึงprivate/ สมาชิกของprotectedclass A ฉันไม่เคยอ่านอะไรเลยว่าทำไมสิ่งนี้ถึงถูกทิ้งไว้ใน C # (และ VB.NET) คำตอบส่วนใหญ่ของคำถาม StackOverflow ก่อนหน้านี้ดูเหมือนจะบอกว่าเป็นส่วนที่มีประโยชน์ของ C ++ และมีเหตุผลที่ดีที่จะใช้ จากประสบการณ์ของฉันฉันต้องยอมรับ คำถามอื่นดูเหมือนว่าฉันจะถามจริง ๆ ว่าจะทำสิ่งที่คล้ายกับfriendในใบสมัคร C # ในขณะที่คำตอบโดยทั่วไปจะหมุนรอบคลาสที่ซ้อนกัน แต่ก็ไม่ได้ดูสวยงามเท่าการใช้friendคำหลัก หนังสือรูปแบบการออกแบบดั้งเดิมใช้เป็นประจำตลอดตัวอย่าง สรุปแล้วทำไมfriendหายไปจาก C # และอะไรคือ "วิธีปฏิบัติที่ดีที่สุด" (หรือวิธี) ในการจำลองใน C # (โดยวิธีการที่internalคำหลักไม่ได้ในสิ่งเดียวกันจะช่วยให้ทุกชั้นเรียนภายในทั้งการชุมนุมในการเข้าถึงinternalสมาชิกในขณะที่friendช่วยให้คุณสามารถที่จะให้ชั้นหนึ่งการเข้าถึงที่สมบูรณ์ไปอีกหนึ่งระดับอื่น ๆ )
208 c#  c++  design-patterns  oop  friend 


4
อะไรคือความแตกต่างระหว่างรูปแบบการออกแบบ MVC, MVP และ MVVM ในแง่ของการเข้ารหัส c #
หากเราค้นหา Google โดยใช้วลี "อะไรคือความแตกต่างระหว่าง MVC, MVP และ MVVM รูปแบบการออกแบบ" จากนั้นเราอาจได้ URL ไม่กี่อันที่พูดถึงความแตกต่างระหว่างรูปแบบการออกแบบ MVC MVP และ MVVM ตามหลักเหตุผลเช่น : MVP ใช้ในสถานการณ์ที่ไม่สามารถผูกข้อมูลผ่าน datacontext ได้ Windows Forms เป็นตัวอย่างที่สมบูรณ์แบบของสิ่งนี้ ในการแยกมุมมองออกจากแบบจำลองจำเป็นต้องมีผู้นำเสนอ เนื่องจากมุมมองไม่สามารถเชื่อมโยงโดยตรงกับผู้นำเสนอได้จึงต้องส่งข้อมูลไปยังมุมมองผ่านอินเทอร์เฟซ (IView) MVVM ใช้ในสถานการณ์ที่ผูกพันผ่าน datacontext ได้ ทำไม? อินเทอร์เฟซ IView ต่าง ๆ สำหรับแต่ละมุมมองจะถูกเอาออกซึ่งหมายถึงรหัสน้อยกว่าเพื่อรักษา ตัวอย่างที่ MVVM มีความเป็นไปได้ ได้แก่ WPF และโปรเจ็กต์ javascript โดยใช้สิ่งที่น่าพิศวง MVC ใช้ในสถานการณ์ที่ไม่สามารถเชื่อมต่อระหว่างมุมมองและส่วนที่เหลือของโปรแกรมได้ (และคุณไม่สามารถใช้ MVVM …

10
เมื่อใดที่เราควรใช้นักสังเกตการณ์และสังเกตได้
ผู้สัมภาษณ์ถามฉัน: คืออะไรObserverและObservableและเมื่อเราควรใช้พวกเขา? ฉันไม่ทราบข้อกำหนดเหล่านี้ดังนั้นเมื่อฉันกลับถึงบ้านและเริ่ม Googling เกี่ยวกับObserverและObservableฉันพบบางจุดจากแหล่งข้อมูลที่แตกต่างกัน: 1) Observableเป็นคลาสและObserverเป็นอินเทอร์เฟซ 2) Observableระดับเก็บรายการของObservers 3) เมื่อมีการObservableอัปเดตวัตถุวัตถุจะเรียกใช้update()วิธีการของแต่ละวัตถุObserverเพื่อแจ้งว่ามีการเปลี่ยนแปลง ฉันพบตัวอย่างนี้: import java.util.Observable; import java.util.Observer; class MessageBoard extends Observable { public void changeMessage(String message) { setChanged(); notifyObservers(message); } } class Student implements Observer { @Override public void update(Observable o, Object arg) { System.out.println("Message board changed: " + arg); } …

24
ฉันจะรู้ได้อย่างไรว่าจะสร้างอินเทอร์เฟซเมื่อใด
ฉันอยู่ในช่วงของการเรียนรู้การพัฒนาที่ฉันรู้สึกว่าฉันต้องเรียนรู้เพิ่มเติมเกี่ยวกับอินเทอร์เฟซ ฉันอ่านบ่อยเกี่ยวกับพวกเขา แต่ดูเหมือนว่าฉันไม่สามารถเข้าใจพวกเขาได้ ฉันได้อ่านตัวอย่างเช่น: คลาสสัตว์พื้นฐานพร้อมอินเทอร์เฟซ IAnimal สำหรับสิ่งต่าง ๆ เช่น 'Walk', 'Run', 'GetLegs' ฯลฯ - แต่ฉันไม่เคยทำงานอะไรมาแล้วรู้สึกเหมือน "เฮ้ฉันควรใช้อินเทอร์เฟซ นี่!" ฉันกำลังคิดถึงอะไร ทำไมมันเป็นแนวคิดที่ยากสำหรับฉันที่จะเข้าใจ! ฉันถูกข่มขู่ด้วยความจริงที่ว่าฉันอาจไม่เคยตระหนักถึงความต้องการที่เป็นรูปธรรมสำหรับคนส่วนใหญ่เนื่องจากความเข้าใจที่ขาดหายไปบางประการ! มันทำให้ฉันรู้สึกเหมือนว่าฉันขาดอะไรบางอย่างในแง่ของการเป็นนักพัฒนา! หากใครมีประสบการณ์เช่นนี้และมีความก้าวหน้าฉันจะขอบคุณเคล็ดลับในการทำความเข้าใจแนวคิดนี้ ขอบคุณ.

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

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

10
ตรรกะทางธุรกิจใน MVC [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน16 วันที่ผ่านมา ปรับปรุงคำถามนี้ ฉันมีคำถาม 2 ข้อ: ไตรมาสที่ 1 "ตรรกะทางธุรกิจ" ตรงไหนในรูปแบบ MVC ฉันสับสนระหว่าง Model และ Controller ไตรมาสที่ 2 "ตรรกะทางธุรกิจ" เหมือนกับ "กฎเกณฑ์ทางธุรกิจ" หรือไม่? ถ้าไม่ต่างกันคืออะไร มันจะดีถ้าคุณสามารถอธิบายด้วยตัวอย่างเล็ก ๆ

7
รูปแบบการออกแบบ: โรงงานกับวิธีการของโรงงานเทียบกับบทคัดย่อจากโรงงาน
ฉันอ่านรูปแบบการออกแบบจากเว็บไซต์ มีฉันอ่านเกี่ยวกับโรงงานวิธีการโรงงานและโรงงานนามธรรม แต่พวกเขาสับสนดังนั้นไม่ชัดเจนในคำจำกัดความ ตามคำจำกัดความ Factory - สร้างวัตถุโดยไม่ต้องเปิดเผยเหตุผลของการสร้างอินสแตนซ์ไปยังไคลเอนต์และอ้างถึงวัตถุที่สร้างขึ้นใหม่ผ่านทางอินเตอร์เฟสทั่วไป เป็นวิธีการที่ง่ายจากเวอร์ชันโรงงาน วิธีการจากโรงงาน - กำหนดอินเทอร์เฟซสำหรับการสร้างวัตถุ แต่ให้คลาสย่อยเพื่อตัดสินใจว่าคลาสใดที่จะสร้างอินสแตนซ์และอ้างถึงวัตถุที่สร้างขึ้นใหม่ผ่านอินเทอร์เฟซทั่วไป Abstract Factory - เสนออินเทอร์เฟซสำหรับสร้างตระกูลของวัตถุที่เกี่ยวข้องโดยไม่ต้องระบุคลาสของพวกเขาอย่างชัดเจน ฉันยังดูเธรดสแต็คโฟลว์อื่น ๆ ที่เกี่ยวข้องกับ Abstract Factory กับ Factory Factory แต่ไดอะแกรม UML ที่นั่นทำให้ฉันเข้าใจยิ่งขึ้น ใครช่วยบอกหน่อยได้ไหม รูปแบบทั้งสามนี้แตกต่างกันอย่างไร จะใช้เมื่อใด และถ้าเป็นไปได้ตัวอย่าง Java ใด ๆ ที่เกี่ยวข้องกับรูปแบบเหล่านี้?

3
รูปแบบการเข้าสู่ระบบ REST API
ฉันกำลังสร้าง REST api อย่างใกล้ชิดทำตามคำแนะนำของ apigee โดยใช้คำนามไม่ใช่คำกริยาเวอร์ชัน api ที่ถูกอบเข้าไปใน url สองเส้นทาง api ต่อการรวบรวม GET POST PUT DELETE การใช้งาน ฯลฯ ฉันกำลังทำงานกับระบบเข้าสู่ระบบ แต่ไม่แน่ใจในวิธีที่เหมาะสมในการเข้าสู่ระบบของผู้ใช้ ฉันไม่ได้ทำงานด้านความปลอดภัย ณ จุดนี้เพียงแค่รูปแบบการเข้าสู่ระบบหรือโฟลว์ (ต่อมาเราจะเพิ่ม oAuth 2 ขั้นตอนด้วย HMAC เป็นต้น) ตัวเลือกที่เป็นไปได้ โพสต์เพื่อบางสิ่งบางอย่างเช่น https://api...com/v1/login.json ใส่เพื่ออะไรเช่น https://api...com/v1/users.json บางสิ่งที่ฉันไม่ได้คิด ... สไตล์ REST ที่เหมาะสมสำหรับการเข้าสู่ระบบของผู้ใช้คืออะไร?

8
Spring AOP กับ AspectJ
ฉันอยู่ภายใต้การแสดงผลที่ Spring AOP ใช้ดีที่สุดสำหรับงานเฉพาะแอปพลิเคชันเช่นความปลอดภัยการบันทึกธุรกรรม ฯลฯ เนื่องจากใช้หมายเหตุประกอบ Java5 ที่กำหนดเองเป็นเฟรมเวิร์ก อย่างไรก็ตาม AspectJ ดูเหมือนจะเป็นมิตรกับรูปแบบการออกแบบที่ฉลาดกว่า ทุกคนสามารถเน้นข้อดีและข้อเสียต่าง ๆ ของการใช้ Spring AOP กับ AspectJ ในแอปพลิเคชัน Spring ได้หรือไม่?

6
การนำ Singleton ไปใช้กับ Enum (ใน Java)
ฉันได้อ่านว่ามันเป็นไปได้ที่จะนำไปใช้Singletonใน Java โดยใช้Enumเช่น: public enum MySingleton { INSTANCE; } แต่ข้างต้นทำงานอย่างไร โดยเฉพาะObjectจะต้องมีการยกตัวอย่าง ที่นี่วิธีMySingletonการยกตัวอย่าง? ใครกำลังทำnew MySingleton()อะไร

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

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