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

การออกแบบเชิงวัตถุเป็นกระบวนการของการวางแผนระบบการโต้ตอบวัตถุเพื่อการแก้ปัญหาซอฟต์แวร์

8
คำถามที่เกี่ยวข้องกับการออกแบบ OO ในการสัมภาษณ์ทางเทคนิค [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว เมื่อไม่นานมานี้ฉันได้เข้ารับการสัมภาษณ์ไม่กี่ครั้งและ บริษัท ได้รับการขอให้ตอบคำถาม "ออกแบบ [แบบจำลองการแทรก]" มากกว่าสองสามครั้ง เป็นเรื่องปกติในอุตสาหกรรมทุกวันนี้หรือไม่? ฉันอยู่ในโลกของซอฟต์แวร์มานานกว่าสองทศวรรษแล้วและได้เข้าร่วมการสัมภาษณ์ของฉัน แต่ฉันเห็นรูปแบบนี้ในการสัมภาษณ์เกิดขึ้นเมื่อเร็ว ๆ นี้ ฉันรู้สึกว่าคำถามเปิดกว้างมาก ตัวอย่างเช่นฉันถูกขอให้วาดแผนภาพคลาสเพื่อ "ออกแบบที่จอดรถ" ฉันไม่แน่ใจว่าผู้สัมภาษณ์คาดหวังรายละเอียดระดับใด นี่คือการทดสอบออนไลน์ที่ฉันคาดว่าจะแนบไดอะแกรม visio ดังนั้นฉันไม่สามารถถามพวกเขาว่าความคาดหวังของพวกเขาคืออะไร คุณใช้คำถามแบบนี้ในการสัมภาษณ์หรือไม่? พวกเขาเกี่ยวข้องกับไดอะแกรมของคลาสเท่านั้นหรือคุณยังถามลำดับผังงานและ ERDs (ของหลักสูตรตามลักษณะของตำแหน่ง) พวกเขามีประสิทธิภาพในกระบวนการจ้างงานของคุณหรือไม่ * แก้ไขเพื่อการตอบสนองของ Kevin * ตัวอย่างเช่น: คำถามที่สมบูรณ์อาจเป็น "ออกแบบระบบการจัดการที่จอดรถที่สามารถใช้เพื่อค้นหาช่องว่าง" ฉันสามารถทำได้มี 2 ชั้นParkingLotและSlotหรือฉันจะไปบนเพื่อเพิ่มIVehicleและVehicleและCarและMotorcycleชั้นเรียน ฉันจะวาดเส้นที่ไหน? public class ParkingLot { IVehicle Vehicle {set; get;} List<Slot> …

2
ออกแบบ: วิธีการวัตถุกับวิธีการแยกชั้นซึ่งใช้วัตถุเป็นพารามิเตอร์?
ตัวอย่างเช่นจะดีกว่าที่จะทำ: Pdf pdf = new Pdf(); pdf.Print(); หรือ: Pdf pdf = new Pdf(); PdfPrinter printer = new PdfPrinter(); printer.Print(pdf); ตัวอย่างอื่น: Country m = new Country("Mexico"); double ratio = m.GetDebtToGDPRatio(); หรือ: Country m = new Country("Mexico"); Country us = new Country("US"); DebtStatistics ds = new DebtStatistics(); double usRatio = ds.GetDebtToGDPRatio(us); double …

2
สแต็กขยาย LinkedList การละเมิดหลักการทดแทน Liskov หรือไม่?
คลาส LinkedList มีอยู่พร้อมกับฟังก์ชั่นเช่น add_first (), add_last (), add_after (), remove_first (), remove_last () และ remove () ขณะนี้มีคลาสสแต็กที่จัดเตรียมฟังก์ชันการใช้งานเช่น push (), pop (), peek () หรือ top () และเพื่อใช้เมธอดเหล่านี้จะขยายเมธอดคลาส LinkedList นี่เป็นการละเมิดหลักการทดแทนของ Liskov หรือไม่? ตัวอย่างเช่นพิจารณา case add_after () เพื่อเพิ่มโหนดที่ตำแหน่งที่ n ของรายการที่เชื่อมโยง สามารถทำได้ในคลาสพื้นฐาน แต่ไม่สามารถอยู่ในคลาสสแต็กได้ postconditions ถูกทำให้อ่อนลงที่นี่หรือคุณปรับเปลี่ยนวิธี add_after () เพื่อเพิ่มไปยังด้านบนสุดของสแต็กหรือไม่ นอกจากนี้หากไม่เป็นการละเมิดการออกแบบที่ไม่ดีนี้เป็นอย่างไร และคุณจะใช้ฟังก์ชั่น Stack โดยใช้คลาส LinkedList …

4
เมื่อติดตาม SOLID การอ่านและการเขียนไฟล์มีความรับผิดชอบแยกกันสองอย่างหรือไม่?
ฉันเพิ่งเริ่มสำรวจ SOLID และฉันไม่แน่ใจว่าการอ่านจากไฟล์และการเขียนไปยังไฟล์เป็นความรับผิดชอบเดียวกันหรือไม่ เป้าหมายเป็นไฟล์ประเภทเดียวกัน ฉันต้องการอ่านและเขียน. pdf ในใบสมัครของฉัน แอปพลิเคชันอยู่ใน Python หากสร้างความแตกต่าง

5
ทำไมวิธีการแบบคงที่ไม่สามารถเขียนทับได้?
ในการตอบคำถามนี้ฉันทามติทั่วไปคือว่าวิธีการแบบสแตติกไม่ได้หมายความว่าจะถูกเขียนทับ (และฟังก์ชันแบบคงที่ใน C # ไม่สามารถเสมือนหรือนามธรรม) นี่ไม่ใช่เฉพาะกรณีใน C # เท่านั้น Java ยังห้ามสิ่งนี้และ C ++ ดูเหมือนจะไม่ชอบเช่นกัน อย่างไรก็ตามฉันสามารถนึกถึงตัวอย่างของฟังก์ชั่นคงที่ที่ฉันต้องการแทนที่ในระดับเด็ก (ตัวอย่างเช่นวิธีการจากโรงงาน) ในทางทฤษฎีมีวิธีการรอบพวกเขาไม่มีพวกเขาสะอาดหรือเรียบง่าย ทำไมฟังก์ชั่นคงที่ไม่สามารถเขียนทับได้?

1
อายุการใช้งานของวัตถุกับความหมายของการย้าย
เมื่อฉันเรียนรู้ C ++ นานมาแล้วมันเน้นอย่างมากกับฉันว่าส่วนหนึ่งของจุดของ C ++ คือเหมือนลูปมี "loop-invariants" คลาสยังมีค่าคงที่ที่เกี่ยวข้องกับอายุการใช้งานของวัตถุ - สิ่งที่ควรเป็นจริง เพราะตราบเท่าที่วัตถุยังมีชีวิตอยู่ สิ่งที่ควรกำหนดโดยผู้สร้างและเก็บรักษาไว้โดยวิธีการ การห่อหุ้ม / การควบคุมการเข้าถึงมีไว้เพื่อช่วยให้คุณบังคับใช้ค่าคงที่ Raii เป็นสิ่งหนึ่งที่คุณสามารถทำได้กับความคิดนี้ ตั้งแต่ C ++ 11 ตอนนี้เรามีความหมายย้าย สำหรับคลาสที่รองรับการย้ายการย้ายจากวัตถุไม่สิ้นสุดอย่างเป็นทางการตลอดอายุการย้ายควรจะปล่อยให้มันอยู่ในสถานะ "ถูกต้อง" บางอย่าง ในการออกแบบชั้นเรียนเป็นเรื่องที่ไม่ถูกต้องหรือไม่หากคุณออกแบบชั้นเรียนเพื่อให้ค่าคงที่ของชั้นเรียนถูกเก็บรักษาไว้จนถึงจุดที่ถูกย้ายออกไป หรือว่าไม่เป็นไรถ้ามันจะช่วยให้คุณทำให้มันเร็วขึ้น หากต้องการทำให้เป็นรูปธรรมสมมติว่าฉันมีประเภททรัพยากรที่ไม่สามารถคัดลอกได้ แต่เคลื่อนย้ายได้เช่น: class opaque { opaque(const opaque &) = delete; public: opaque(opaque &&); ... void mysterious(); void mysterious(int); void mysterious(std::vector<std::string>); }; และด้วยเหตุผลใดก็ตามฉันจำเป็นต้องทำ …

4
กลยุทธ์การใช้งานที่ดีสำหรับการห่อหุ้มข้อมูลที่ใช้ร่วมกันในซอฟต์แวร์ไปป์ไลน์
ฉันกำลังดำเนินการเกี่ยวกับการให้บริการเว็บที่มีอยู่อีกครั้ง วิธีที่ API ของบริการถูกนำไปใช้คือการมี "การประมวลผลขั้นตอน" ซึ่งมีงานที่จะดำเนินการตามลำดับ ไม่น่าแปลกใจที่งานในภายหลังอาจต้องการข้อมูลที่คำนวณโดยงานก่อนหน้านี้และในปัจจุบันวิธีที่ทำได้คือการเพิ่มเขตข้อมูลลงในคลาส "ไปป์ไลน์" ฉันกำลังคิด (และหวัง?) ว่ามีวิธีที่ดีกว่าในการแบ่งปันข้อมูลระหว่างขั้นตอนไปป์ไลน์กว่าการมีออบเจ็กต์ข้อมูลที่มีเขตข้อมูล zillion ซึ่งบางอันเหมาะสมกับขั้นตอนการประมวลผลบางอย่างและไม่ใช่กับผู้อื่น มันจะเป็นความเจ็บปวดที่สำคัญในการทำให้เธรดปลอดภัยระดับนี้ (ฉันไม่รู้ว่ามันจะเป็นไปได้) ไม่มีทางที่จะให้เหตุผลเกี่ยวกับค่าคงที่ของมัน (และเป็นไปได้ว่ามันจะไม่มี) ฉันเพจผ่านรูปแบบการออกแบบหนังสือของ Gang of Four เพื่อค้นหาแรงบันดาลใจ แต่ฉันไม่รู้สึกว่ามีวิธีแก้ปัญหาในนั้น (Memento ค่อนข้างมีวิญญาณเดียวกัน แต่ไม่มาก) ฉันดูออนไลน์ด้วยเช่นกัน แต่ครั้งที่สองที่คุณค้นหา "ไปป์ไลน์" หรือ "เวิร์กโฟลว์" ที่คุณได้รับนั้นเต็มไปด้วยข้อมูล Unix pipes หรือเอ็นจิ้นเวิร์กโฟลว์และเฟรมเวิร์กที่เป็นกรรมสิทธิ์ คำถามของฉันคือ - คุณจะแก้ไขปัญหาการบันทึกสถานะการดำเนินการของขั้นตอนการประมวลผลซอฟต์แวร์อย่างไรเพื่อให้งานในภายหลังสามารถใช้ข้อมูลที่คำนวณโดยคนก่อนหน้าได้ ฉันเดาว่าความแตกต่างที่สำคัญกับท่อ Unix คือคุณไม่เพียง แต่สนใจผลงานก่อนหน้านี้ทันที ตามที่ร้องขอบางรหัสเทียมเพื่อแสดงกรณีการใช้งานของฉัน: วัตถุ "ไปป์ไลน์บริบท" มีพวงของเขตข้อมูลที่ขั้นตอนไปป์ไลน์ที่แตกต่างกันสามารถเติม / อ่าน: public class …

7
ออกแบบ: โทรกลับไปที่ชั้นผู้ปกครอง
เมื่อสร้างแบบจำลองวัตถุกับเด็ก ๆ เป็นเรื่องปกติที่จะรวมเด็ก ๆ ผ่านการจัดองค์ประกอบในฐานะสมาชิกของชั้นผู้ปกครอง บางครั้งเด็ก ๆ ต้องบอกบางสิ่งกับผู้ปกครองพวกเขาจำเป็นต้องเรียกใช้ฟังก์ชันของผู้ปกครอง วิธีนี้สามารถทำได้โดยใช้ C ++ ตัวเลือกบางอย่างคือ: ทำให้คลาส parent ระดับโลกดังนั้นวัตถุลูกจะสามารถเรียกฟังก์ชันสมาชิกของวัตถุแม่ได้ ฉีดวัตถุแม่เป็นตัวชี้หรือการอ้างอิงลงในวัตถุลูกทุก จากนั้นเมื่อเด็กต้องการบอกวัตถุแม่บางอย่างก็สามารถทำได้เพราะมันมีตัวแปรสมาชิกที่สามารถใช้ วิธีอื่นในการทำเช่นนี้คืออะไร? มีลวดลายหรือชื่อการออกแบบทั่วไปสำหรับสิ่งนี้หรือไม่? โปรดทราบว่าฉันสนใจในแนวคิดและวิธีแก้ปัญหาใน C ++ เนื่องจากรายละเอียดจะแตกต่างกันในภาษาเชิงวัตถุอื่น ๆ ตัวอย่างเช่นจุดที่ 2 ด้านบนกล่าวถึง 'ตัวชี้หรือการอ้างอิง' และทั้งสองจะเป็นไปได้ใน C ++ เท่านั้น C ++ มีฟีเจอร์ภาษาที่ไม่ปรากฏในภาษาอื่นดังนั้นการใช้งานโซลูชันเพื่อแก้ไขปัญหาอาจรวมฟีเจอร์ภาษาเหล่านี้ซึ่งทำให้โซลูชันแตกต่างจากสิ่งที่อาจมีในภาษาอื่น

2
ใน DDD บริการโดเมนเป็นเพียงรูปแบบซุ้มและ / หรือคนกลาง?
ในการออกแบบการขับเคลื่อนโดเมน Domain Layer สามารถมีบริการ (ดั้งเดิม) หลายอย่าง ตัวอย่างเช่นสำหรับโดเมนผู้ใช้เราอาจมี: UserFactory ที่สร้างวัตถุผู้ใช้ด้วยวิธีที่ต่างกัน UserRepository ซึ่งรับผิดชอบในการโต้ตอบกับ Persistence Services ในชั้นโครงสร้างพื้นฐาน UserService ใน Domain Layer นั้นเป็นเพียงแค่ผู้ไกล่เกลี่ยและ / หรือส่วนหน้าของบริการทั้งสองและโครงสร้างพื้นฐานของเลเยอร์หรือมีมากกว่านั้นหรือไม่

2
จะหลีกเลี่ยงการทำซ้ำโครงสร้างข้อมูลเมื่อส่วนต่างของแอพเขียนเป็นภาษาอื่นได้อย่างไร
ตัวอย่างเช่นสมมติว่าคุณกำลังเขียนแอปในJava ของแอปสื่อสารกับเซิร์ฟเวอร์ API เขียนในหลาม เซิร์ฟเวอร์ Python สื่อสารกับฐานข้อมูลSQL นอกจากนี้คุณยังมีเว็บไซต์ของแอปเขียนในJavaScript ด้วย 4 ภาษาที่แตกต่างกันมันง่ายที่จะจบลงด้วยการทำซ้ำโครงสร้างข้อมูลเดิม 4 ครั้ง ตัวอย่างเช่นUserประเภทอาจมีลักษณะเช่นนี้ (pseudocode): type User { integer id; string name; timestamp birthday; } Userส่วนหนึ่งของโครงการทุกคนจะต้องชนิดของการแสดงบางอย่างสำหรับ ส่วนของ Java และ Python ต้องการclassการประกาศสองแบบที่ต่างกัน ฐานข้อมูลจะต้องมีUserการประกาศตาราง และเว็บไซต์ส่วนหน้าจะต้องเป็นตัวแทนUserด้วย การทำซ้ำประเภทนี้ 4 ครั้งแตกต่างกันจริงๆแบ่งห้ามทำซ้ำ-Yourselfหลักการ นอกจากนี้ยังมีปัญหาที่หากUserมีการเปลี่ยนแปลงประเภทการเปลี่ยนแปลงเหล่านี้จำเป็นต้องทำซ้ำในทุกส่วนของโครงการ ฉันรู้ว่าห้องสมุดprotobufของ Google นำเสนอวิธีการแก้ปัญหาที่คุณเขียนโครงสร้างข้อมูลโดยใช้ไวยากรณ์พิเศษจากนั้นห้องสมุดจะสร้างการประกาศโครงสร้างสำหรับคุณในภาษาการเขียนโปรแกรมหลายภาษา แต่สิ่งนี้ยังไม่ได้จัดการกับปัญหาของการต้องตรวจสอบตรรกะการตรวจสอบซ้ำสำหรับประเภทของคุณ ไม่มีใครมีคำแนะนำหรือลิงค์ไปยังหนังสือ / บล็อกโพสต์เกี่ยวกับเรื่องนี้หรือไม่?

2
จะทราบได้อย่างไรว่าต้องทำอะไรในการออกแบบเชิงวัตถุ
ข้อสงวนสิทธิ์แรก: ฉันไม่รู้จริงๆว่าคำถามนี้เหมาะกับเว็บไซต์นี้หรือไม่ แต่ฉันก็ยังพบว่าเป็นคำถามที่เกี่ยวข้องไม่ใช่เฉพาะกับฉัน แต่สำหรับคนอื่น ๆ ที่เป็นผู้เริ่มต้น หากคำถามสามารถปรับปรุงให้เหมาะกับที่นี่โปรดชี้ให้เห็นความคิดเห็น int หากมันไม่พอดีโปรดแจ้งให้ฉันทราบด้วยและหากเป็นไปได้โปรดแจ้งให้เราทราบว่าสามารถพูดคุยเรื่องนี้ได้ที่ไหนเพราะฉันไม่พบฟอรัมที่ดีสำหรับเรื่องนี้ ฉันเรียนรู้ที่จะเขียนโปรแกรมในปี 2009 เมื่อฉันเรียน PHP ต่อมาในปี 2012 ฉันย้ายไปที่ C # และ. NET อย่างไรก็ตามการเขียนโค้ดไม่ใช่ปัญหาการจดอัลกอริธึมไม่ใช่ปัญหาของฉัน ปัญหาที่เกิดขึ้นจริงของฉันคือการรู้ว่าสิ่งที่จะต้องมีการเข้ารหัสเพื่อให้บรรลุความต้องการและการที่มันจะต้องมีการเข้ารหัส หลักสูตรส่วนใหญ่ที่มีอยู่บนเว็บจัดการวิธีการเขียนโค้ดในภาษาบางภาษาวิธีใช้ API บางชุด ฯลฯ นั่นไม่ใช่ประเด็นของฉันที่นี่ ในปีที่ผ่านมาฉันได้อ่านสิ่งต่างๆมากมาย: การวิเคราะห์และออกแบบเชิงวัตถุรูปแบบการออกแบบการออกแบบโดยใช้โดเมนเป็นต้น ฉันเข้าใจตัวอย่างเช่นหลักการ SOLID แนวคิดหลักบางประการของ DDD เช่นความจำเป็นในการมีส่วนร่วมของผู้เชี่ยวชาญด้านโดเมนการพัฒนาภาษาที่แพร่หลายและอื่น ๆ ฉันจะกล้าพูดว่าฉันมีพื้นฐานทางทฤษฎีอย่างน้อยเหมาะสม แต่เมื่อพูดถึงการฝึกฝนฉันรู้สึกว่าฉันเป็นหายนะ เมื่อไม่นานมานี้ฉันจำเป็นต้องพัฒนาระบบการเงินที่ถูกพัฒนาโดยบุคคลอื่นต่อไป มันเป็น "ระบบเก่า" ที่พัฒนาด้วย C # และ WinForms นี่เป็นครั้งแรกที่ฉันเลือกโครงการที่มีความซับซ้อนของโดเมนจริงด้วยกฎเกณฑ์ทางธุรกิจมากมายและอื่น ๆ ฉันยอมรับว่าเมื่อฉันได้รับข้อกำหนดเกือบตลอดเวลาฉันคิดว่า "จะทำอย่างไรในโลกนี้?" - …

5
วิธีหลีกเลี่ยงการละเมิด SRP ในชั้นเรียนเพื่อจัดการแคช?
หมายเหตุ:ตัวอย่างโค้ดเขียนด้วย c # แต่นั่นไม่ควรสำคัญ ฉันใส่ c # เป็นแท็กเพราะหาแท็บไม่ได้อีก นี่คือเกี่ยวกับโครงสร้างรหัส ฉันอ่าน Clean Code และพยายามเป็นโปรแกรมเมอร์ที่ดีขึ้น ฉันมักจะพบว่าตัวเองกำลังดิ้นรนเพื่อทำตามหลักการความรับผิดชอบเดียว (ชั้นเรียนและฟังก์ชั่นควรทำเพียงสิ่งเดียว) โดยเฉพาะอย่างยิ่งในฟังก์ชั่น บางทีปัญหาของฉันคือ "สิ่งหนึ่ง" ไม่ชัดเจน แต่ก็ยัง ... ตัวอย่าง: ฉันมีรายการ Fluffies ในฐานข้อมูล เราไม่สนใจว่าปุยคืออะไร ฉันต้องการชั้นเรียนเพื่อกู้คืนความผิดปกติ อย่างไรก็ตาม fluffies สามารถเปลี่ยนแปลงได้ตามตรรกะบางอย่าง คลาสนี้จะส่งคืนข้อมูลจากแคชหรือรับข้อมูลล่าสุดจากฐานข้อมูลทั้งนี้ขึ้นอยู่กับตรรกะบางอย่าง เราสามารถพูดได้ว่ามันจัดการกับความฟู่ฟ่าและนั่นคือสิ่งหนึ่ง เพื่อให้ง่ายสมมติว่าข้อมูลที่โหลดนั้นดีสำหรับหนึ่งชั่วโมงจากนั้นจะต้องโหลดใหม่ class FluffiesManager { private Fluffies m_Cache; private DateTime m_NextReload = DateTime.MinValue; // ... public Fluffies GetFluffies() { …

1
Open Close Principle (OCP) vs หลักการผกผันการพึ่งพา (DIP)
ฉันพยายามที่จะเข้าใจความแตกต่างระหว่างหลักการเปิด (OCP) และหลักการผกผันของการพึ่งพา (DIP) จากการวิจัยที่ฉันได้ทำบนอินเทอร์เน็ตจนถึงตอนนี้ฉันได้ข้อสรุปว่า 'DIP เป็นทางเลือกหนึ่งที่เราสามารถบรรลุ OCP' ฉันถูกใช่ไหม คุณสามารถยกตัวอย่างที่ไม่ทำตามกรมทรัพย์สินทางปัญญา แต่ติดตาม OCP ได้ไหม

4
สลับกับความแตกต่างเมื่อจัดการกับรูปแบบและมุมมอง
ฉันไม่สามารถหาทางออกที่ดีกว่าสำหรับปัญหาของฉัน ฉันมีตัวควบคุมมุมมองที่นำเสนอรายการองค์ประกอบ องค์ประกอบเหล่านั้นเป็นแบบจำลองที่สามารถเป็นตัวอย่างของ B, C, D, ฯลฯ และสืบทอดจาก A. ดังนั้นในตัวควบคุมมุมมองแต่ละรายการควรไปที่หน้าจอที่แตกต่างกันของแอปพลิเคชันและส่งผ่านข้อมูลบางส่วนเมื่อผู้ใช้เลือกหนึ่งในนั้น . ทางเลือกสองทางที่อยู่ในใจของฉันคือ (กรุณาเพิกเฉยไวยากรณ์ไม่ใช่ภาษาที่เฉพาะเจาะจง) 1) สวิตช์ (ฉันรู้ว่า sucks) //inside the view controller void onClickItem(int index) { A a = items.get(index); switch(a.type) { case b: B b = (B)a; go to screen X; x.v1 = b.v1; // fill X with b data …

4
ขีด จำกัด ขนาดที่ใช้ได้จริงของ Hashtable และ Dictionary ใน c #
อะไรคือข้อ จำกัด ในทางปฏิบัติสำหรับจำนวนรายการที่พจนานุกรม C # 4 หรือ Hashtable สามารถมีได้และจำนวนไบต์ทั้งหมดโครงสร้างเหล่านี้อาจมีเหตุผล ฉันจะทำงานกับวัตถุจำนวนมากและต้องการทราบว่าโครงสร้างเหล่านี้เริ่มมีปัญหาเมื่อใด สำหรับบริบทฉันจะใช้ระบบ 64 บิตกับหน่วยความจำมากมาย นอกจากนี้ฉันจะต้องค้นหาวัตถุโดยใช้รูปแบบบางอย่างหรือ 'คีย์' เมื่อพิจารณาถึงความต้องการประสิทธิภาพวัตถุเหล่านี้จะต้องอยู่ในหน่วยความจำและส่วนใหญ่จะมีอายุการใช้งานยาวนาน อย่าลังเลที่จะแนะนำวิธีการ / รูปแบบอื่น ๆ แม้ว่าฉันจะต้องหลีกเลี่ยงการใช้ห้องสมุดบุคคลที่สามหรือโอเพ่นซอร์ส สำหรับเหตุผลในสเปคฉันต้องสามารถสร้างสิ่งนี้โดยใช้ native C # ( หรือ C ++ \ CLI )

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