Ben sadece RxJava , Java'nın ReactiveX ( Rx ve Reaktif Uzantıları olarak da bilinir) uygulaması ile başlıyorum . Gerçekten bana vurdu o şey kitlesel büyüklüğündeydi RxJava en Akışkan sınıfta : o 460 yöntemleri vardır!
Adil olmak:
Aşırı yüklenmiş, toplam yöntem sayısını önemli ölçüde çarptıran birçok yöntem vardır.
Belki de bu sınıf parçalanmalıdır, ancak RxJava hakkındaki bilgim ve anlayışım çok sınırlıdır. RxJava yarattı millet mutlaka çok akıllı ve bunlar oluşturmak için seçtiğiniz için geçerli argümanlar muhtemelen sunabilir akabilir kadar çok yöntemlerle.
Diğer yandan:
RxJava Java uygulamasıdır Microsoft'un Reaktif Uzantıları ve bu hatta bir yok Akışkan bu körlemesine varolan sınıf taşıma ve Java gibi uygulanmasının bir durum değildir bu yüzden, sınıf.
[ Güncelleme: Microsoft: italik olarak önceki bir noktaya dayanarak yanlış olduğu gözlemlenebilir 400 yöntemleri vardır sınıfı, RxJava en için temel olarak kullanılmıştır Gözlemlenebilir sınıf ve Akışkan benzer gözlemlenebilir , ancak kolları verilerin büyük miktarlar için geri-basınç. RxJava ekibi Yani edildi varolan sınıf taşıma. Bu mesaj özgün tasarımını zorlu olmalıydı gözlemlenebilir Microsoft ziyade RxJava en sınıfa Akışkan sınıfa.]
RxJava sadece 3 yaşın biraz üzerindedir, bu nedenle iyi ( SOLID ) sınıfı tasarım ilkeleri (Java'nın erken sürümlerinde olduğu gibi) hakkında bilgi eksikliği nedeniyle yanlış tasarlanmış bir kod örneği değildir .
Flowable kadar büyük bir sınıf için tasarımı doğal olarak yanlış görünüyor, ama belki de değil; Bu SE sorusuna bir cevap Bir sınıf yöntemi sayısının sınırı nedir? cevabının " İhtiyacınız olduğu kadar çok yönteme sahip olduğunu" önerdi .
Açıkça, dilden bağımsız olarak onları desteklemek için yasal olarak çok sayıda yönteme ihtiyaç duyan bazı sınıflar vardır, çünkü daha küçük bir şeye kolayca ayrılmazlar ve adil sayıda özellik ve öznitelikleri vardır. Örneğin: dizeler, renkler, elektronik tablo hücreleri, veritabanı sonuç kümeleri ve HTTP istekleri. Sınıfların bu şeyleri temsil etmesi için belki de birkaç düzine yöntemi olması mantıksız görünmüyor.
Ancak Flowable'ın gerçekten 460 yönteme ihtiyacı var mı yoksa zorunlu olarak kötü sınıf tasarımına bir örnek olacak kadar büyük mü?
[Açık olmak gerekirse: Bu soru özellikle RxJava en ilgilidir Akışkan ziyade genel olarak Tanrı nesnelerden daha sınıfına.]