Welcome

Kotlin’de Singleton Nasıl Implement Edilir?

Java programlama dilinde “static” keyword ile statik sınıflar , statik metotlar ve statik değişkenler tanımlarız. Java’da statik olarak tanımlanmış metot ve değişkenlere de, herhangi bir nesneye ihtiyaç duymadan, sınıf düzeyinde erişebiliriz. Uygulama genelinde bir sınıftan tek bir nesne ile çalışılmasını garanti eden Singleton örüntüsünü de yine bu statik metot ve değişkenler yardımı ile implement ederiz. […]

ServiceLocator’dan Inversion of Control’e Yolculuk

Harezmi Bilişim Çözümleri olarak 7 seneden fazla bir zamandır Spring Application Framework ile ilgili eğitimler veriyoruz. J2EE’nin ilk dönemlerinde kurumsal Java uygulamaları geliştirilirken kullanılan  ServiceLocator örüntüsünün nasıl IoC veya Dependency Injection’a doğru evrildiğini anlamanın Spring Application Framework’ün özünü ve temel felsefesini anlamak için çok faydalı olduğunu düşündüğümüz için de eğitimelerimizde Spring’i anlatmaya bu konu üzerinden […]

Spring Application Framework ve Tasarım Örüntüleri 2

Önceki yazılarımızdan birinde Spring Application Framework’de kullanılan örüntülerin bir kısmındann bahsetmiştik. Factory Method, Singleton, Prototype, Proxy, Template Method, Observer, Mediator, Front Controller örüntüleri Spring Application Framework içerisinde değişik şekillerde karşımıza çıkmaktadır. Bu yazımızda da Spring Application Framework içerisinde kullanılan diğer bazı örüntülerden bahsedeceğiz. Strategy: Bu örüntü Spring ürün ailesinin hemen her yerinde karşımıza çıkmaktadır. Spring […]

Serialization mı Memento mu?

Geçen hafta düzenlediğimiz ve hem benim hem de katılımcılar için oldukça verimli ve eğlenceli geçtiğini düşündüğüm uygulamalı “Nesne Yönelimli Tasarım Prensipleri ve Tasarım Örüntüleri Eğitimi”nde Memento örüntüsünü inceleyip Java’da nasıl implement edileceğini bir örnek ile açıklarken “Serialization varken Memento’ya neden ihtiyaç duyarız?” şeklinde bir soru soruldu. Memento tasarım örüntüsü ile amaçlanan, bir nesnenin dahili state […]

Java ve Double Dispatch 2

İlk yazımızda Java’da “single dispatch“in nasıl çalıştığını ve “multiple dispatch” problemini incelemiştik. Eğer metot çözümleme sırasında input argümanında dikkate alınmasını istiyorsak izlememiz gereken yol “metot çözümlemeyi input argümanın kendisine delege etmek” olacaktır. Nasıl mı? Örnekle açıklayalım… Visitor v = new SubVisitor(); A a = new B(); v.visit(a); Bir önceki örneğimizde Visitor’ün visit metodunu çağırıyor ve […]

Java ve Double Dispatch 1

Hepimizin bildiği gibi Java polymorphic (çok formlu) bir dildir. Çok formluluk java uygulamasının içindeki metot çağrılarının spesifik olarak hangi sınıftaki metot tanımı ile yapılacağının çalışma zamanına kadar ötelenmesi ile gerçekleştirilmektedir. Bir örnek ile açıklayalım. public class Visitor { public void visit(A a) { System.out.println(“Visiting A”); } } public class SubVisitor extends Visitor { @Override public […]

Tasarım Prensipleri ve Tasarım Örüntülerine Giriş Seminerleri

Aralık 2011’de ODTÜ Enformatik Enstitüsü’nde, arından da dün ODTÜ Bilgisayar Mühendisliği’nde tasarım örüntülerinden ve nesne yönelimli yazılım geliştirmede temel bazı tasarım prensiplerinden bahsettiğimiz iki sunum gerçekleştirdik. Bunlardan ODTÜ’deki sunumda klasik ve modernist nesne yönelimli tasarım yöntemlerinin ne tür sonuçlar doğurduğunu örnek bir proje üzerinde katılımcılarla paylaştık. Sunum ve örnek koda aşağıdaki link’lerden erişebilirsiniz. Tasarim_Prensipleri case […]

Spring ve Event Tabanlı Mimariler

Dört günlük Spring Application Framework Core Eğitimi‘mizde Spring hakkında pek çok konu üzerinde duruyoruz. Bu konulardan birisi de Spring container’ın event publish mekanizmasıdır. Spring Application Framework ile sistemimizi event tabanlı bir mimari üzerine bina etmek oldukça kolaydır. Spring container kurumsal uygulamalarda bir event bus olarak görev yapabilir. Uygulama içerisindeki farklı modüller, birbirleri ile event tabanlı […]

Soyutlama Heryerde

Java programlama dili eğitimlerinde java ve object oriented programlama konularını anlatmaya soyutlama kavramı ile başlıyorum. Neden mi? Çünkü soyutlama hemen her an gerçekleştirdiğimiz bir aktivite. Hayatın her yerinde ve her anında geçerli. İnsanoğlunun çevresindeki olayları ve olguları anlayabilmesi, problemleri çözebilmesi için bu olay ve olguların sadece belirli bir boyutuna odaklanması şart. Sınırlı zihni kabiliyetlerimiz bütün […]

Spring Application Framework’de Kullanılan Tasarım Örüntüleri

Spring Application Framework’ü öğrenirken, sunduğu kabiliyetlerin hangi iyi pratikler ve design pattern’lar üzerine kurulu olduğunu bilmek şüphesiz framework’ü daha sağlıklı biçimde öğrenmenizi sağlayacaktır. İşte Spring Application Framework içerisinde kullanılan pattern’lar ve kullanıldıkları yerler; Factory Method: BeanFactory bu pattern üzerine bina edilmiştir. Spring managed beanların yaratılması ve bağımlılıkların sağlanmasında kullanılır. Singleton: Yaratılan bean’ler default olarak container […]