ICloneableอินเตอร์เฟซด้วยตัวเองไม่ได้เป็นประโยชน์มากซึ่งเป็นที่จะบอกว่ามีจริงๆไม่ได้หลาย ๆ สถานการณ์ที่เป็นประโยชน์ที่จะรู้ว่าวัตถุอยู่ cloneable โดยไม่ทราบว่าสิ่งอื่นใดเกี่ยวกับเรื่องนี้ นี่เป็นสถานการณ์ที่แตกต่างจากเช่นIEnumerableหรือIDisposable; มีหลายสถานการณ์ที่เป็นประโยชน์ในการยอมรับIEnumerableโดยไม่รู้อะไรเลยนอกจากวิธีการแจกแจง
ในทางกลับกันICloneableอาจมีประโยชน์เมื่อใช้เป็นข้อ จำกัด ทั่วไปร่วมกับข้อ จำกัด อื่น ๆ ตัวอย่างเช่นคลาสพื้นฐานอาจรองรับอนุพันธ์จำนวนหนึ่งอย่างมีประโยชน์ซึ่งบางส่วนสามารถโคลนได้อย่างมีประโยชน์และบางส่วนไม่สามารถโคลนได้ หากประเภทพื้นฐานนั้นเปิดเผยอินเทอร์เฟซการโคลนนิ่งสาธารณะประเภทอนุพันธ์ใด ๆ ที่ไม่สามารถโคลนได้จะละเมิดหลักการการแทนที่ของ Liskov วิธีหลีกเลี่ยงปัญหานี้คือการให้ประเภทฐานสนับสนุนการโคลนนิ่งโดยใช้วิธีการป้องกันและอนุญาตให้ประเภทที่ได้รับใช้อินเทอร์เฟซการโคลนสาธารณะตามที่เห็นสมควร
เมื่อทำได้สำเร็จวิธีการที่ต้องการยอมรับวัตถุWonderfulBaseประเภทหนึ่งและจำเป็นต้องสามารถโคลนได้สามารถเข้ารหัสเพื่อยอมรับวัตถุ WonderfulBase ที่รองรับการโคลน (โดยใช้พารามิเตอร์ประเภททั่วไปที่มีประเภทฐานและICloneableข้อ จำกัด ) . แม้ว่าICloneableอินเทอร์เฟซจะไม่ได้ระบุถึงการโคลนนิ่งแบบลึกหรือตื้น แต่เอกสารประกอบสำหรับWonderfulBaseระบุว่าWonderfulBaseควรโคลนแบบลึกหรือแบบตื้น โดยพื้นฐานแล้วICloneableอินเทอร์เฟซจะไม่ประสบความสำเร็จในสิ่งที่ไม่สามารถทำได้โดยการกำหนดICloneableWonderfulBaseยกเว้นว่าจะหลีกเลี่ยงการกำหนดชื่อที่แตกต่างกันสำหรับคลาสพื้นฐานที่สามารถโคลนได้