Builder Design Pattern

Merhaba değerli Java dostları, Yeni bir design pattern yazısı ile beraberiz. Yine obje oluşturma sürecinde kullanılan builder design pattern, özellikle constructor üzerinde kullanılmak üzere karmaşık olan oluşturma sürecini daha basit bir hale getirmeyi amaçlar. Ayrıca bu oluşturma süreci boyunca bilgiler adım adım set edilir. Böylece son build işlemi ile beraber gerekli tüm özellikleri set edilmiş bir obje elde edilmiş olunur. Hemen örnek kodlarımıza bakalım. package designpattern.builder;import java.awt.Color;public class CarBuilder {private Color carColor = null; Paylas    

Yazılım Sanatı – İlk Kapıyı Aralamak
Kişisel / 20 Mart 2015

Merhaba değerli dostlar. Son zamanlarda bana mail ile ulaşan arkadaşların büyük bir çoğunluğunun sorduğu ortak bir soru var. “Java’ da yeniyim nasıl ilerlemem gerekiyor?” Paylas    

Serialization Clone
IO , Java / 20 Mart 2015

Kısa bir serialization clone yazısı ile karşınızdayım değerli dostlar. Çoğumuz belki de hepimiz clone işlemi için Object sınıfında bulunan metodu kullanırız. Bu yazımda farklı bir yöntemi daha işlemek istedim. Input ve output sınıflarını yani IO kütüphanelerini kullanacağız. Hemen örneğe geçelim. package designpattern.prototype;import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable;public class SerializationClone {public static void main(String[] args) { try {SerialObject mc1 = new SerialObject(); mc1.color = “blue”; Paylas    

Prototype Design Pattern

Obje oluşturmada kullanılan Prototype design pattern ile yeni yazıma başlıyorum değerli dostlar. Aslında amaç ve mimari olarak çok basit bir kalıp ile karşı karşıyayız. Buradaki temel amaç hemen hemen veya tamamen birbirinin aynı objeleri oluşturmak. Genelde clone yöntemi üzerinden gidilmektedir. Bazı ufak tefek özellikler ile kendinize göre geliştirme yapabilirsiniz. Çok uzatmadan koda geçmek istiyorum ve öncelikle yine interface sınıfımız. package designpattern.prototype;public interface IProtoype {public T clone();} Paylas    

java.lang.AbstractMethodError: Method com/mysql/jdbc/ResultSet.isClosed()Z is abstract
Exception , Java , MySQL / 11 Mart 2015

Mysql JDBC Driver kullanırken başlıktaki java.lang.AbstractMethodError: Method com/mysql/jdbc/ResultSet.isClosed()Z is abstract hatasını alıyorsanız yapmanız gereken tek işlem daha güncel – mümkünse en son – driver sürümünü kullanmak. MySQL belli bir sürümden önceki kütüphanesinde isClosed metodunu desteklemiyor. Bunun nedeni ise muhtemelen isClosed metodunun JDK7 ile beraber gelmiş olması. Paylas    

Abstract Factory Design Pattern

Yeni bir mimari konusu ile karşınızdayım değerli Java dostları. Bugünkü konumuz olan abstract factory design pattern – bundan sonra AF olarak yazacağım – factory kalıbının bir üst versiyonu. Diğer factory yazılarımdan hatırlarsak, obje oluşturmada kullanıyorduk. AF ise factory oluşturmada kullanılıyor. Bu kalıbın en iyi örneklerini UI ve grafik kütüphaneleri üzerinde görebiliriz. Her zaman ki gibi interface ve abstract yapıları üzerinden gitmek daha doğru olacaktır. İsterseniz hemen bir örnek ile başlayalım. Öncelikle hobi amaçlı 😀 enum sınıflarını yazalım. package designpattern.abstractfactory;public enum PortWriterEnum {SerialPortWriter, ParallelPortWriter;} Paylas    

Factory Design Pattern 2

Merhaba Java dostları, Bu yazım önceki Factory Design Pattern yazımın devamı niteliğinde olup, dikkat etmemiz gereken birkaç nokta hakkında bahsetmek istiyorum. Öncelikle bu tasarım kalıbının obje oluşturma ile ilgili bir kalıp olduğunu hatırlatmak istiyorum. Obje oluşturmak için bir veya birkaç parametre içeren bir sete sahip olmamız gerekir ki hangi objeyi oluşturup döndürmemiz gerektiğini bilelim. Bu tasarım kalıbını etkin olarak kullanabilmek için interface veya abstract yapılarını kullanmamız lazım. Böylece yapılar arasında ve mimari anlamda esneklik sağlamış oluruz. Kodumuzu kullanacak programcı ise böylece arka planda olanlardan haberdar olmak zorunda olmayacaktır. İşte tam da istediğimiz şey bu 🙂 . Paylas    

Singleton Design Pattern 2

Bu yazım bir önceki Singleton Design Pattern yazımın devamı niteliğinde. Singleton uygularken dikkat etmemiz gereken bazı önemli noktalar var. Kısaca bunlara değinmeye çalışacağım. Öncelikle bu tasarım kalıbının amacı sınıftan sadece bir instance üretmek ve tüm uygulama boyunca bu tek instance kullanmak. Bundan dolayı bu tekil objeye erişebilmek için public tanımlı metotlar olmalıdır. Ayrıca herhangi bir geliştirmede singleton kullanan kısımları etkilemeden çoklu yapıya geçiş yapılabilmelidir. Bu da tabiki yazılım mimarisinin bir konusudur. Paylas