• Recent Comments

    ABAP Design Pattern

    Türkçede karşılığı tasarım şablonları olarak geçen , yazmış olduğunuz proje üzerinde karşınıza çıkan problemlere tasarım kalıplarıyla çözümler bulmaktır ve bu çözümler ile yazılım dünyasında bulunanların hayatını kolaylaştırıp , geliştirilen projenin daha kullanılabilir hale getirilmesini sağlamaktır. Bir başka tanım ise; projelerde sıklıkla kullanılan nesnelerin tekrar kullanmak üzere kategorize edilmesidir.

    Farklı sorunlara ve bu sorunlara ait çözümler üreten Design Pattern sektörde en çok kullanılan 23 kalıba sahiptir. Tasarım kalıplarının başlıca birkaç özelliğinden bahsedelim;

    -Tekrar kullanılabilir bir yapıya sahiptirler.

    -Ortak kullanımlarda daha büyük sorunlara çözüm üretirler.

    -Tecrübeler sonucunda ortaya çıkmıştır ve bu sebeple kullanımda büyük avantajlar sağlar.

    Design  Patternlar kendi aralarında çeşitli alanlara ayrılırlar;

    *Creational Design Pattern

    *Behavioral Design Pattern

    *Structual  Design Pattern

    Bunlardan önce MVC nedir ilk olarak sürekli duyulan bu kavramı açıklayabiliriz. Model(Veri-DataBase), Arayüz(View), Orta Katman(Controller) panellerinin bir arada bulunduran günümüzde en çok tercih edilen  mimaridir.Peki bu Mimariyi kullanma amacımız nedir?

    Bir uygulama geliştiriyorsunuz bu uygulamanız içerisinde bahsedilen 3 katmanın yazılımda ne tür kolaylıkla sağladığını görebilirsiniz.

    Model katmanında uygulamanız içerisindeki DataBaselerin bulunduğu kısım bu alanda verilerinizi rahatça yönetebilmenize olanak tanır.

    View katmanı genelde kullanıcının etkileşimde bulunduğu bölümdür.

    Controller ilk katman olan Model katmanı ile View katmanı arasındaki işlemleri gerçekleştirmenizi sağlar.

    Bu yapıya bir örnek verip açıklarsak yazmış olduğunuz bir uygulamanın ileriki zamanlarda , örneğin ara yüz tarafında değiştirmek istediğiniz bir bölümde tüm kodları bozma ihtimalinizi ortadan kaldırıp sadece düzenlemek istediğiniz katman  üzerinde rahatça değişiklik yapmanıza izin verir.

    Kategorilere ayrılan Design Patternlerin birkaçını tanımlayabiliriz. Bunlardan ilk olan Oluşturucu (Creational) ,

    Abstract Factory Türkçe olarak soyut fabrika adını taşır. Uygulamanızda  aynı interfaceleri implemente ederken ayrı ayrı Classlar elde etmek yerine merkezde bulunan bir fabrika gibi bu factory e bağlı Classlar oluşturmak yazılımı daha esnek ve çalışır duruma getirmeye yardımcı olacaktır.

    -Builder Aslında Abstract Factory ile birbirine kısmen benzeseler de karmaşık nesnelerin oluşturulduğunda sistemin kodlarınızın sadece nesne tiplerinin belirtilerek gerçekleştirilmesini sağlamasıdır. Builder kalıbının kullanım oranı %40 civarındadır bunun bu kadar düşük olmasının nedeni uygun çözümlerin tespit edilmesinin diğer kalıplara göre daha zor olmasıdır.

    Diğer kategoriden olan Behavioral Design Pattern ,

    Mediator Sablonu, aracı şablon olarak bilinir zayıf bağ denilen durumlarda birbirleriyle fazla etkileşimi bulunan classların sistem kontrollerinde genelde tek bir sınıf üzerinden yönetilmeyi amaçlamaktadır.

    Iterator Sablonu, tekrarlayıcı şablondur .Nesne bütünlüğünde ağaç yapısının hangi sırada neye göre hareket edeceğini bu şablona bırakmasıdır.

    Son olarak Structual Pattern ,

    Composite  bileşik tasarım kalıbı, nesne içerisindeki ağaç yapısını hiyerarşik olarak düzenlemeyi sağlar.

    Facade Pattern , Türkçede cephe anlamına gelen bu yapıda kendi alt sınıflarında bulunan özellikleri yansıtmasıdır. Aynı özelliklere sahiptir. Sınıf implement edilirken ortak yapıda birleştirip yeni bir isimle aynı özelliklere sahip bir yapı oluşturarak uygulanması ya da bunları isterseniz ayrı ayrı kullanabilmenize olanak tanır.

    Bundan sonraki yazılarımız da ABAP tarafında tasarım şablonlarını kullanarak örneklemelerden bahsetmek olacak.

    Ayrıca nesne tabanlı programlamada tasarım şablonları ile ilgili daha detaylı araştırma yapmak isterseniz  “Design Patterns: Elements of Reusable Object-Oriented Software by Gamma, Helm, Johnson, and Vlissides” kitabını tavsiye edebilirim.

    Tasarım şablonları algoritmalarınız kolayca tasarlamanıza ve kodlamanızın daha stabil ve hızlı olmasını sağlar. Nesne tabanlı programlamada olduğu gibi klasik ABAP dediğimiz prosedürel kodlama tekniğiyle de kullanabilirsiniz.

    ABAP da programlarken tasarım şablonlarının faydaları ;

    Tasarım sürecinde kompleksliği düşürür , yazacağımız modül ve programlar ne kadar kompleks olursa olsun süreci kontrol etmemizi , yönetilebilirliği sağlar. Örneğin BAPI ile malzeme oluştururken sektörel çözümlerde , malzeme oluşturma BAPI sinin üzerine BAPI eklenmesi .

    Bakım açısından bir yerde değiştirdiğiniz bir değişkenin ya da “select” ettiğiniz bir tablonun tüm modül tarafından  aynı noktada method ya da fonksiyon tarafından çağrılması veya  tabloda yapacağınız “ key “ değişimlerinde yönetiminizi kolaylaştırır. Bu noktalara BADI lerinizi koyabilirsiniz ürünlerinizde.

    Takım çalışmalarında farklı noktalarda farklı kişilerin çalışarak , aynı şablon etrafında çalışması ile hızlı ve efektif kod yazılmasını sağlayabilirsiniz. Programcıların kendi aralarında görev değişimi çok hızlı bir şekilde yapabilmesini sağlayabilirsiniz. Bir program da bir programcının çalışmasına alternatif olarak ; bir geliştirici fonksiyonlar ve class lar üzerinde çalışırken “model” ve “controller ” tarafta ,başka bir geliştircinin “view” tarafta ekranları tasarlaması takım çalışmasına bir örnektir.

    Bir sonraki yazımda “singleton pattern” üzerinde örnekler ile devam ediyor olacağım.

    • Recent Comments