Command tasarım şablonunu açıklamak için televizyonu uzaktan kumanda etme aletini metafer (mecazi örneklendirme) olarak kullanmak istiyorum. Kanalları değiştirmek için kumanda aleti üzerinde belirli bir tuşa basarız. Tusa basıldığı anda kumanda aleti televizyona bir komut göndererek, kanalın değişmesini sağlar. Aynı şekilde televizyonu açıp, kapatmak ve ses ve renk ayarlarını yapmak için değişik tuşlar kullanılır. Kullanıcı olarak tuşa basıldığında, televizyon bünyesinde ne gibi bir işlemin yapıldığı hakkında bilgi sahibi olmamız gerekmiyor. Bunu alıcının (televizyon) bilmesi yeterlidir. Bilmemiz gereken tek şey, hangi tuşun altında hangi komutun olduğudur.
Bir nesne üzerinde bir işleminin nasıl yapıldığını bilmediğimiz ya da kullanılmak istenen nesneyi tanımadığımız durumlarda, Command tasarım şablonu ile yapılmak istenen işlemi bir nesneye dönüştürerek, alıcı nesne tarafından işlemin yerine getirilmesi sağlıyabiliriz
Bu yazıyı PDF olarak edinebilirsiniz.
Command (Komut) Tasarım Şablonu (80,4 KiB, 8.646 yükleme)
EOF (End of Fun)
Özcan Acar
Tasarım Şablonları (Design Patterns) kategorisinden son yazılar
- Decorator Tasarım Şablonu - July 24th, 2010
- Java Enum ile Singleton Tasarım Şablonu - February 2nd, 2010
- Intercepting Filter Tasarım Şablonu - December 9th, 2009
- Builder Tasarım Şablonu - November 17th, 2009
- Service Locator Tasarım Şablonu - October 30th, 2009
- Business Delegate Tasarım Şablonu - October 30th, 2009
- Chain of Responsibility Tasarım Şablonu - October 9th, 2009
- Front Controller Tasarım Şablonu - October 9th, 2009
- Flyweight (Sinek Siklet) Tasarım Şablonu - October 9th, 2009
- Proxy (Vekil) Tasarım Şablonu - October 8th, 2009
ali serdar ilter
22 Mayıs 2009PDF linkini göremedim,
Kolay gelsin
Emre SÜREN
27 Eylül 2009Makaledeki kodlarda Televizyon obje’si geciyor. Sanirim kod kismi unutulmus.
Gene makaledeki UML den cikardigim kod, asagidaki gibi…
public class Televizyon {
public void ac() {
System.out.println("TV acildi");
}
public void kapat() {
System.out.println("TV kapatildi");
}
public void kanalDegistir() {
}
}
Onemli degil ama gene de yazayim dedim…