หากBaseFruit
มีคอนสตรัคเตอร์ที่ยอมรับได้int weight
ฉันจะยกตัวอย่างผลไม้ในวิธีทั่วไปแบบนี้ได้ไหม
public void AddFruit<T>()where T: BaseFruit{
BaseFruit fruit = new T(weight); /*new Apple(150);*/
fruit.Enlist(fruitManager);
}
ตัวอย่างถูกเพิ่มไว้ข้างหลังความคิดเห็น ดูเหมือนว่าฉันจะทำสิ่งนี้ได้ก็ต่อเมื่อฉันให้BaseFruit
นวกรรมิกแบบไม่มีพารามิเตอร์แล้วเติมทุกอย่างผ่านตัวแปรสมาชิก ในรหัสที่แท้จริงของฉัน (ไม่เกี่ยวกับผลไม้) นี้ค่อนข้างทำไม่ได้
- อัปเดต -
ดังนั้นจึงไม่สามารถแก้ไขได้ด้วยข้อ จำกัด แต่อย่างใด จากคำตอบมีสามวิธีแก้ปัญหาผู้สมัคร:
- รูปแบบโรงงาน
- การสะท้อน
- Activator
ฉันมักจะคิดว่าการไตร่ตรองนั้นสะอาดน้อยที่สุด แต่ฉันก็ไม่สามารถตัดสินใจได้ระหว่างสองสิ่งนี้