Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

1.  Farklı algoritmalarla çalışabilecek kod yazmanın sözkonusu olduğu durumlarda kulanılabilecek bir patterndir.

Örneğin bir dizinin elemanlarını sıralamak çok değişik şekillerde yapılabilir. Bu iş için Bubble, Quick, Merge gibi algoritmalar vardır. (bkz. sorting algorithms) Dizinin yapısına göre bir algoritma diğerinden daha kullanışlıdır. Elinizdeki diziyi duruma göre farklı bir algoritmaya sıralatmak isterseniz bu pattern'i kullanabilirsiniz.

Bunun için mesela ISorter adında bir interface tanımlar, buna Sort adında bir metod ekler, parametre olarak gönderdiğiniz diziyi sıralamasını sağlarsınız. Yani Şöyle:

interface ISorter {
   List Sort(List dizi);
}

Bu interface'i implement eden sorterlar yazılır:
class BubbleSorter : ISorter {
   public List Sort(List dizi){
       // buble sıralama implementasyonu
   }
}

class MergeSorter : ISorter {
   public List Sort(List dizi){
       // merge sıralama implementasyonu
   }
}

// ... vs..

Son olarak bu sorter'lardan herhangi birinin kullanabilen bir sınıf yazılır:
public class Sorter {

   private ISorter sorter;

   public Sorter(ISorter hangisi){
      this.sorter = hangisi;
   }

   List Sort(List dizi){
      return this.sorter.Sort(dizi);
   }
}

Artık dilediğimiz sorter'ı kullanabiliriz:
Sorter s1 = new Sorter(new BubbleSorter());
s1.Sort(dizi);

Sorter s2 = new Sorter(new MergeSorter());
s2.Sort(baskaDizi);

// gibi..

fizikci
29 Ocak 2007 11:31
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.


Bu başlığa bkz veren girişlerin başlıkları nedir?

Bu başlığa bkz veren girişler başka hangi başlıklara bkz verdiler?
» Singleton Pattern » Template Method pattern » Visitor pattern » Flyweight Pattern » Aggregate Enforcer Pattern » Read-Write Lock Pattern » Virtual Proxy Pattern » Bridge Pattern » Adapter Pattern » Mediator pattern » pattern » Explicit Object Release Pattern » Memento pattern » Critical Section Pattern » Common Attribute Registry Pattern » Proxy Pattern » Prototype Pattern » Chain of responsibility pattern » Object Cache Pattern » Null Object Pattern » Iterator pattern » Interpreter pattern » Façade Pattern » Factory Method Pattern » State pattern » Builder Pattern » Consistent Lock Order Pattern » Command pattern » Composite Pattern » Object Authenticator Pattern » Abstract Factory Pattern » Decorator Pattern » Guarded Suspension Pattern » Counting Proxy Pattern » Observer pattern

© 2005, Bilişim Kulübü. (1093 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen