2009-11-01 15 views

cevap

12

Oldukça basit: yalnızca uygulamada tanımlanan türler yalnızca uygulama içinde görülebilir, bu nedenle arabirimde argüman türleri veya dönüş değerleri olarak kullanılamazlar. Bu nedenle, tür tanımlarınızı (başka herhangi bir şey gibi ;-), bu türlerin yalnızca bir uygulama detayı mı, yoksa dışarıdan, yani arabirim üzerinden görünür hale getirmek istediğiniz bir şey mi olduğuna bağlı olarak konumlandırın!

+0

Tamam, bunun için herhangi bir ek yük veya tasarruf var mı, yoksa tamamen gizlenen bir bilgi mi? Daha önce de belirtildiği gibi, çok sık kullanıldığını görmedim, eğer 'daha iyi uygulama' ise garip görünüyor. – HMcG

+0

@HMcG, hiçbir şekilde asıl yük yok - Neden nadiren kullandığını bilmiyorum, belki insanlar bunu düşünmüyor (ya da nadiren sadece uygulama amaçları için fazladan türlere ihtiyaç duyuyorlar). –

+0

Sadece bir kapsam sorunu var. Sadece maruz kalması gerekenleri ortaya çıkarın. Seninki de seninki. Benim olan benimdir. Paylaşmaya karar vermedikçe. –

5

Kapsam. Arabirim bildirimleri geneldir ve bu birim Kullanım Maddesinde yer aldığında diğer birimler için kullanılabilir. Uygulama beyanları özeldir ve sadece söz konusu Birim içerisinde kullanılabilir.

3

Arabirimdeki kod değişiklikleri arasında genel bir fark vardır ve kod derleme sırasında uygulamayı değiştirir. Arabirim bölümündeki bir sınıfı sınıfa ekler veya değiştirirseniz, değiştirilen birime başvuruda bulunan her birim yeniden derlenmelidir. Bununla birlikte, uygulama bölümündeki bir değişiklik (yeni bir alt sınıf veya kod değişikliği) sadece o ünitenin yeniden derlenmesini gerektirecektir ve IDE, daha önce derlenmiş DCU'yu ve yenisini bir araya getirmek için EXE dosyasını bir araya getirecektir.

Genel fayda, uygulama ayrıntılarını gizlemek için kod tasarlamanıza izin vermesidir - arabirimdeki ana sınıfı ve uygulamadaki alt sınıfları tanımlayın. Veya arayüz bölümünde mevcut olan bir sınıf/yöntemin davranışlarını uygulamak için sadece ihtiyaç duyulduğunda uygulamadaki sınıfları tanımlayın.

İlgili konular