İçeriğe geç

Factory Tasarım Deseni

Factory(fabrika) tasarım kalıbı istemcinin ihtiyacı olan nesneleri üretmek için fabrika görevi görmektedir. Aşağıdaki ClassDiagramda görüldüğü gibi ihtiyaçlar dahilindeki nesnelerimizi Abstract Class veya Interface sayesinde hazırlanabilir.

Bu kök classı implemente eden sınıflar bizim istemci tarafta erişim yapmak isteyeceğimiz nesnelerimiz olacaktır. Erişimi yapmaya yardımcı olacak olan sınıfımızı ise FactoryClass ismi ile belirleyeceğiz ve içeriğinde bir enum sabitini parametre olarak alan method yazacağız. Bu method bize AbstractSendeClass kök sınıfından türeyen bir nesne fırlatacaktır.

    class FactoryClass
    {
        public AbstractSendClass SendFactory(SendTypes sType)
        {
            AbstractSendClass _AbstractSendClass = null;
            switch (sType)
            {
                case SendTypes.Faks:
                    _AbstractSendClass = new FaksSend();
                    break;
                case SendTypes.Sms:
                    _AbstractSendClass = new SmsSend();
                    break;
                case SendTypes.Mail:
                    _AbstractSendClass = new MailSend();
                    break;
            }
            return _AbstractSendClass;
        }
    }

Burada görüldüğü gibi SendTypes isimli bir enum sayesinde istemci tarafın erişim yapmayı isteyeceği nesneyi belirlemesine olanak tanıyoruz. Bu tasarım desenine ait örnek console uygulamasını indirip inceleyebilirsiniz.

Tarih:Design Pattern

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.