Anasayfa » Php » PHP Tasarım Desenleri » Creational Tasarım Desenleri
Bir uygulamada bir nesnenin yalnızca bir örneğine (instance) ilgili tüm işlemleri uygulamak için kullanılır.Veritabanı Bağlantıcısı (Database Connector), Kayıtçı (Logger), Uygulama için kilitleme (lock) dosyası (dosya sisteminde sadece bir tane var …) işlemleri kullanım örneği olarak verilebilir. Örnek kodlara bakalım; Örneğe…
Soyut Fabrika’ya (Abstract Factory) benzer biçimde, ilgili veya bağımlı nesneler serisi oluşturmak için kullanılır. Bu desen ile Soyut Fabrika deseni arasındaki fark, bu desenin oluşturabileceği her türlü nesneyi oluşturmak için yalnızca bir statik metodu kullanmasıdır. Metodlar ise genellikle factory, build…
Basit ve kontrollü bir şekilde nesneler oluşturmak için kullanılır. Statik olmadığı için statik fabrikadan farklıdır. Farklı parametreli birden fazla fabrikanız olabilir, alt sınıflara bağlanabilir ve kullanabilirsiniz. Statik bir fabrika yerine her zaman tercih edilmelidir. Örnek kodlarla devam edelim; Kullanımı şu…
Nesneleri standart yolla (örn. new Foo()) oluşturmanın maliyetinden kaçınmak, bunun yerine bir prototip oluşturmak ve klonlamak için kullanılır. Yüksek oranda veri oluşturma (örn. ORM aracılığıyla bir veritabanında aynı anda 1.000.000 satır oluşturma) işlemlerinde kullanmak bu desen için uygundur. Bu örneğe…
Factory Method(Fabrika Yöntemi) kendisini alt sınıflarla genişleterek (subclassing) farklı biçimlerde nesne oluşturabilmeyi sağlar. Basit durumlarda soyut sınıf sadece bir interface(arayüz) olabilir. Bu desen “gerçek” bir Tasarım Deseni’dir, çünkü S.O.L.I.D ilkelerinden biri olan “D” yani “Dependency Inversion Principle (Bağımlılık Tersinme İlkesi)”…
Builder (Yapıcı), karmaşık bir nesnenin parçalarını oluşturan bir interface’dir(arayüz). Bazen builder, oluşturduğu şey hakkında daha iyi bir bilgiye sahipse, bir arayüz (interface) yerine varsayılan methodlara sahip soyut bir sınıf (class) olabilir (diğer bir deyişle bir adaptör (adapter)). Eğer nesneler için…
İlgili veya bağımlı nesneler dizisini somut sınıflarını belirtmeden oluşturmak için kullanılır. Genellikle oluşturulan sınıfların tümü aynı interface’i uygular. Abstract Factory(Soyut fabrikanın) client’ı nesnelerin nasıl oluşturulduğuyla ilgilenmez, sadece nasıl birlikte kullanıldıklarını bilir. Örnek üzerinden devam edelim; Örneğin kodları ise şu şekilde;…