ICloneableArayüz kendisi tarafından bir nesne bu konuda başka bir şey bilmeden kopyalanabilen olduğunu bilmek yararlıdır nerede gerçekten birçok durum var olmadığını söylemek olan, çok kullanışlı değildir. Bu, örneğin IEnumerableveya IDisposable; IEnumerableNasıl numaralandırılacağından başka hiçbir şey bilmeden kabul etmenin yararlı olduğu birçok durum vardır .
Öte yandan, diğer ICloneablekısıtlamalarla birlikte genel bir sınırlama olarak uygulandığında yararlı olabilir. Örneğin, bir temel sınıf yararlı bir şekilde bir dizi türevi destekleyebilir, bunlardan bazıları yararlı bir şekilde klonlanabilir ve bazıları olamaz. Temel türün kendisi bir genel klonlama arayüzünü açığa çıkarsa, klonlanamayan herhangi bir türev türü Liskov İkame İlkesini ihlal eder. Bu sorunu önlemenin yolu, temel tipin Korumalı bir yöntem kullanarak klonlamayı desteklemesi ve türetilmiş türlerin uygun gördükleri şekilde genel bir klonlama arabirimi uygulamasına izin vermektir.
Bu gerçekleştirildikten sonra, bir WonderfulBasetürden bir nesneyi kabul etmek isteyen ve onu klonlayabilmesi gereken bir yöntem, klonlamayı destekleyen bir WonderfulBase nesnesini kabul edecek şekilde kodlanabilir (temel tür ve ICloneablekısıtlamalara sahip genel bir tür parametresi kullanılarak ) . Her ne kadar ICloneablearayüz kendisi derin veya sığ klonlama işaret olmaz, belgelerine WonderfulBasekopyalanabilen belirtmek istiyorum WonderfulBase, derin veya sığ-klonlanmış olmalıdır. Esasen, ICloneablearayüz, ICloneableWonderfulBaseher farklı klonlanabilir temel sınıf için farklı adlar tanımlamak zorunda kalmaması dışında, tanımlayarak başarılamayacak hiçbir şeyi başaramazdı .