คำถามติดแท็ก subtypes

4
วิธีจัดการกับวิธีการที่ถูกเพิ่มเข้ามาสำหรับชนิดย่อยในบริบทของความหลากหลาย?
เมื่อคุณใช้แนวคิดของความหลากหลายที่คุณสร้างลำดับชั้นของชั้นเรียนและใช้การอ้างอิงผู้ปกครองที่คุณเรียกใช้ฟังก์ชั่นอินเทอร์เฟซโดยไม่ทราบว่าชนิดที่เฉพาะเจาะจงมีวัตถุ มันเยี่ยมมาก ตัวอย่าง: คุณมีคอลเลคชั่นสัตว์และเรียกร้องให้สัตว์ทุกตัวทำงานeatและคุณไม่สนใจว่ามันจะกินสุนัขหรือแมว แต่ในลำดับชั้นเดียวกับที่คุณมีสัตว์ที่มีเพิ่มเติม - อื่น ๆ กว่าสืบทอดและดำเนินการจากชั้นเรียนAnimalเช่นmakeEggs, getBackFromTheFreezedStateและอื่น ๆ ดังนั้นในบางกรณีในการทำงานของคุณคุณอาจต้องการทราบประเภทเฉพาะเพื่อเรียกใช้พฤติกรรมเพิ่มเติม ยกตัวอย่างเช่นในกรณีที่มันเป็นช่วงเวลาเช้าและถ้ามันเป็นเพียงสัตว์แล้วคุณเรียกeatมิฉะนั้นถ้ามันเป็นมนุษย์แล้วโทรครั้งแรกwashHands, และเพียงแล้วโทรgetDressed eatวิธีจัดการกรณีนี้? ความแตกต่างตาย คุณจำเป็นต้องค้นหาประเภทของวัตถุซึ่งฟังดูมีกลิ่นรหัส มีวิธีการทั่วไปในการจัดการกรณีนี้หรือไม่?

2
ทำไมการพิมพ์ย่อยย่อยแบบพฤติกรรมไม่สามารถตัดสินใจได้?
งานของ Liskov ในพื้นที่นี้มุ่งเน้นไปที่พฤติกรรมย่อยซึ่งนอกเหนือจากประเภทความปลอดภัยของระบบที่กล่าวถึงในบทความนี้ยังต้องการให้ชนิดย่อยรักษาค่าคงที่ทั้งหมดที่รับประกันโดย supertypes ในสัญญาบางอย่าง [3] คำจำกัดความของการพิมพ์ย่อยนี้โดยทั่วไปไม่สามารถระบุได้ดังนั้นจึงไม่สามารถตรวจสอบได้โดยตัวตรวจสอบชนิด จาก: http://www.wikiwand.com/en/Subtyping#/Function_types
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.