C # Design Pattern Essentials okuyorum . Şu anda yineleyici düzeni hakkında okuyorum.
Nasıl uygulanacağını tamamen anlıyorum ama önemini anlamıyorum veya bir kullanım durumu görmüyorum. Kitapta, birinin nesnelerin listesini alması gereken bir örnek verilmiştir. Bunu, IList<T>
ya da gibi bir kamu malını ifşa ederek yapabilirlerdi Array
.
Kitap yazıyor
Bununla ilgili sorun, bu sınıfların her ikisinin de iç temsilinin dış projelere maruz kalmasıdır.
İçsel temsil nedir? Aslında bir mi array
yoksa IList<T>
? Bunun tüketici için neden bu kadar kötü bir şey olduğunu anlamıyorum.
Kitap daha sonra bu kalıbın GetEnumerator
işlevini göstererek çalıştığını söyler , böylece GetEnumerator()
'listeyi' bu şekilde arayabilir ve gösterebiliriz .
Bu kalıpların belirli durumlarda (hepsinde olduğu gibi) bir yeri olduğunu kabul ediyorum, ancak nerede ve ne zaman olduğunu göremiyorum.
F
bana bilgisine (yöntemleri) verir a
, b
ve c
. Her şey iyi ve güzel, farklı olan ama F
benim için farklı şeyler olabilir . Yöntemi "kısıtlamalar" olarak düşünün veya bir sözleşmenin hükümleri, F
sınıfları yapmayı taahhüt eder. Bir şey eklediğimizi varsayalım d
, çünkü buna ihtiyacımız var. Bu, ek bir kısıtlama ekler, bunu her yaptığımızda F
s'ye daha fazla empoze ederiz . Sonunda (en kötü durum) sadece bir şey olabilir, F
o yüzden de olmayabilir. Ve F
çok kısıtlayan bunu yapmanın tek bir yolu var.