2011-10-20 14 views
5

Uygulamaya genel olan bir sistem ortak uzantısının "katmanı" nın ne olduğunu merak ediyorum. Örneğin, Rails benzeri "DaysAgo", "MonthsAgo" vb. Kullanmama izin veren uzantılarım olabilir. Tamsayılarda tamsayı yöntemi. Bir projenin hangi katmanı tipik olarak aittir? Altyapı düşünüyordum, ancak bu veritabanı ile ilgili (örneğin taban depoları ve veri erişimi) anlamına geliyor. Bir "Çekirdek" kütüphane projem var, belki de oraya ait mi?Bir projenin hangi katmanında ortak uzantı yöntemleri bulunur?

Belirli bir sınıf grubuyla ilgili uzantıları gruplamak istediğinizi anlıyorum, ancak bunlar esasen tüm uygulama genelinde kullanılıyor. Uzantı yöntemlerinden önceki günlerde, Utilities statik sınıfında veya benzerlerinde olurdu, bu yüzden şimdi nerede yaşamalılar?

cevap

2

yapabilirsiniz (daha iyi) örneğin kapsamına göre birden altyapı projelerini oluşturun:

Infrastructure.Common (burada genel altyapıyı geliyor - uzatma yöntemleri için en uygun) Infrastructure.Data (Veri erişimi) Infrastrcuture. bla bla bla

2

Bu yöntemleri, bu nesnelerin/varlıkların bulunduğu en düşük tabakaya koyarım.

arayüzleri ya da varlıklar ya da bir çekirdek düzeneği içinde ya düşük daha çok, tüm üst tabakalar kullanabilir :)

0

olarak tüm uygulama kapsamı dışında olan mantığı koyarak dikkate onun kendi meclisi veya meclisleri.

2

Tüm diğer projelerden başvurulan bir temel projeye (Çekirdek gibi bir şey) koyarım. Bir süredir yeni bir proje başlatırsanız, bu uzantı yöntemlerini kolayca yeniden kullanabilirsiniz.

Farklı uzantı yöntemleri için kullanacağınız ad alanlarını düşünürüm. Eğer bazıları gerçekten Data'ya aitse, bunları bir Core.Data ad alanına yerleştiriniz, böylece diğer projelerinizdeki kodunuz bu bağlamda bir anlamı olmayan uzantı yöntemleri ile karıştırılmayacaktır.

İlgili konular