Bu dersimizde remoting uygulamalarında Factory Design Pattern konusunu inceliyoruz.
Video: Remoting Factory Design Pattern
Bu dersimizde remoting uygulamalarında Factory Design Pattern konusunu inceliyoruz.
Video: Remoting Factory Design Pattern
Bu dersimizde nesne tabanli programlamada(OOP) en cok karsilasacaginiz Singleton tasarim deseninin(Design Pattern) kullanimina bir ornek veriyoruz.
Video: Singleton Tasarim Deseni
Bu ornegimizde Singleton design patternnin, MDI formlar icerisinde kullanimina bir ornek veriyor olacagiz.
Video: MDI Formlarinda Singleton Design Pattern Kullanimi
Yazdigimiz web uygulamalarinda hepimiz Cache yapisini en az bir kere kullanmisizdir. Cache kolleksiyonuna daha onceden yazdigimiz nesneleri okumak icin kullanilan bir tasarim deseni olan State Bag Access Patterni farkinda olmadan hepimiz kullanmistir.
1: public List List()
2: {
3: List myList;
4: if (Cache["customers"] == null)
5: {
6: myList = DAL.ListCustomers();
7: Cache.Insert("customers", mList, null, DateTime.Now.AddHours(1), TimeSpan.Zero);
8: }
9: return (List)Cache["customers"];
10: }
Fakat bu tasarim deseninde dikkat etmemiz gereken ince bir puf nokta var. Cache kolleksiyonunda tuttugumuz nesneye bir istek geldiginde, onu sadece bir defa okumaliyiz. Aksi takdirde cache kolleksiyonunda bulunan bir nesne yukaridaki kodda da gozuktugu gibi; 4. satirda dolu iken 9. satira gectigi an null hale gelmis olabilir. Buda bizim ?Object reference not set to an instance of an object? hatasi ile karsi karsiya gelmemize sebep olur. Bu durumdan korunmak icin yazmamiz gereken kod ise asagida gosterilmistir.
1: public List List()
2: {
3: string cacheKey = "customers";
4: List myList = Cache[cacheKey] as List;
5: if (myList == null)
6: {
7: myList = DAL.ListCustomers();
8: Cache.Insert(cacheKey, mList, null, SiteConfig.CacheDuration, TimeSpan.Zero);
9: }
10: return myList;
11: }