Paketim Momocs adresindeki S3 nesnelerini doğrulamak için bir yöntem arıyorum.S3 esnekliğini S4 gösterim denetimi ile birleştirebilir miyiz?
Paketin önceki sürümleri S4 kullanılarak yazıldı, sonra esneklik adına S3'e geri döndüm, çünkü kullanıcılar S3'e daha fazla girmişti, çünkü birden fazla kalıtıma gerçekten ihtiyacım yok çünkü etc.. Bu değişikliğin ana maliyeti aslında S4 temsili/geçerlilik kontrolü kaybetti.
Sorunum şöyle: S3 nesnesini istem dışı olarak "geçersiz kılmak", örneğin varolan yöntemleri genişletmeye veya nesne yapısını değiştirmeye çalışmaktan nasıl önleyebiliriz?
Zaten validate
işlevini yazmıştım ancak şu ana kadar, yalnızca bir nesneyi bir sınıftan diğerine çeviren önemli adımlar öncesinde doğrularım.
Sorum şu:
- benim pasta var ve (kontrol S3 esneklik ve S4 gösterimini) yemek istersin? Bu durumda, paketimin tüm yöntemlerinde
validate
işlevimi eklemem gerekir mi? - veya S3'ün üzerinde daha akıllı bir yol var mı, "belirli bir sınıfın nesnesi üzerinde herhangi bir şey yaptığımız zaman, bir
validate
işlevini çağır" gibi bir şey var mı?
(https://github.com/vbonhomme/Momocs/blob/master/R/: burada sınıf
"example_class"
bir nesne içincheck_example_class
olarak adlandırılan, basit bir doğrulama fonksiyonuna sahip bir örnek cl-validate.R) ama her yere eklemekten kaçınıp alamayacağımı bilmek isterim. 'Print'de onu yazmak çok iyi bir hile! –@VincentBonhomme Bu, S3 ve S4'ün satılması. Manuel olarak doğrulamak zorundasınız çünkü S3 gerçekten sadece sınıf özniteliğini gönderir; Her türlü doğrulama için başka bir altyapı sağlamamaktadır. – Thomas