Framework'ü Daha İyi Anlamak İçin Örnek
Örneğin bir hesap makinesi programı yapıyorsunuz, bu programı 2 şekilde yazabilirsiniz;
1) Kullanıcının yapmak istediği işlemi saptamak için iç içe "if() else" statementları kullanırsınız ve doğru if e geldiğinde programın hesaplama işlemini yapmasını sağlarsınız yada,
2) Bu işlemlerin türünü(+,-,/*) belirlemek için bir class mesela,
public class TürBelirle(String); classı olsun
İşlemin hesaplamasını gerçekleştirecek classı belirleyen ayrı bir class bunada,
public class hesap(char); diyelim
ve son olarak hesaplamayı yapan ayrı classlar kullanırsınız(public class Toplama(String, String)).
Buna göre ikinci yöntem çok çok daha avantajlıdır çünkü;
- 1. yöntemde program doğru if bloğunu bulmak için ondan önce gelen bütün blokları kontrol etmelidir, bu işlem bilgisayarı yavaşlatır ancak 2. yöntemde ise her adım için ayrı class vardır. Yani görev ayrımı yapılmıştır. Böylece her adım için class ların içindeki fonksiyonlar kullanılır( parameter passing) böylece bilgisayarın işleme gücü(hızı) artar.
- Diğer bir artısı kodun kullanılabilirliği artar. Yani eğer biz + işlemini yeniden tanımlamak istersek tek yapmamız gereken + işlemini yapan classı değiştirmek olacaktır programın diğer kısımlarına ellemeye gerek olmayacaktır.
- Ayrıca kodun daha düzenli olmasını sağlar ve dışarıdan projeye dahil olacak adamın anlaması kolaylaşır.
Şimdi toparlayacak olursak, Hastane Bilgi Yönetim Sistemi(HBYS), Web Tabanlı Öğrenci Bilgi Sistemi, web tabanlı kurumsal projeler geliştirmek için projeyi bölümlemek gerekir Neden?;
1) her takım kendi alanındaki bölümle ilgilenir işin karmaşık alt tarafıyla ilgilenmez,
2) takım daki değişiklikleri tolere etmek için projeyi bilen değil o bölümde uzmanlaşmış bir takım arkadaşı bulmak yeterli hale gelir;
3) Uygulamanın hızı artar(bkz: Örnek).
İşte bu bölümlemeyi yapacak arkadaşda bizim Struts Frameworkü dür.
Struts aslında daha önce var olan MVC (Model View Controller) kalıbı baz alınarak geliştirilmiştir.
MVC Nedir?
Öncelikle programlama dünyasında amaç büyük uygulamalar geliştirirken karmaşıklığı azaltmak. Daha kolay ve kısa sürede proje geliştirmek. Bunu yapmak içinde Object Oriented mantığını kullanmak. MVC nin olayıda Object_oriented mantığını Client-Server(Kullanıcı-Sunucu) Modelinin her tarafına uygulanmasını sağlamak.
Peki bu nasıl sağlanıyor? Web Tabanlı Projenin Model, View ve Controller olarak üçe ayırılmasıyla.
VIEW
Kullanıcının tarayıcısından gördüğü kısım yani JSP. JSP, HTML ve Java kodlarından oluşan bir java teknolojisidir.
MODEL
İş mantığını içeren Java Sınıflarıdır (Servlet).
CONTROLLER
Denetleyici (Controller) olarak atanan Servlet, gelen isteği(JSP) inceledikten sonra gerekli iş
mantığını yürütecek ilgili sınıfı çağırır.
Ana hatlarıyla MVC yapısını anlatmaya çalıştım. Umarım başarılı olmuşumdur, yorumlarınızı bekliyorum...
Bir sonraki yazımda ise Struts'ın Nasıl MVC'ye uyarlandığını ve Struts yapısını daha ayrıntılı şekilde açıklayacağım.
Herkese iyi çalışmalar.