Odak modu

Java Spring

Service (Business) Katmanı

Bu bölümde, diğer bir bileşen olan servis (service) konsepti incelenmektedir. Servis, iş katmanındaki (business layer) bileşen yapısını temsil eder. Şimdi, genellikle entity (varlık) sınıflarımız için ne tür ihtiyaçlara sahip olduğumuza bir göz atalım. Bu ihtiyaçlar doğrultusunda, bir data sınıfına (entity) ihtiyaç duyulur, iş katmanına (business layer) ihtiyaç duyulur veya bir kontrolcü katmanına (controller) ihtiyaç duyulmaktadır. Kontrolcü katmanının yerine API katmanını (API layer) da kullanılabilir.

Normalde, örneğin bir müşteri (customer) entity'si için, bir iş sınıfına (business class) veya bir kontrolcü sınıfına (controller class) ihtiyacımız vardır. Ancak, bu yerine API katmanını kullanabiliriz. Örneğin, "CustomerController" yerine "CustomerApi" diyebiliriz.

Biz zaten bu yapıyı hızlı bir şekilde kullanacaksak, veri tipini integer olarak belirtilmektedir.

public void methodName(int variableName)

Mesela bir kontrolcü (controller) vardı. Örneğin, "CustomerController" adında bir sınıf yazıyordum. Bu sınıfa RestController anotasyonunu ekliyordum ve burada bir repository olduğunu belirtiyordum. Repository'yi belirtmek içinse genellikle "CustomerRepository" diyordum ve burada işlemler gerçekleştiriyordum.

Artık burada işte biraz daha ileri gidiyoruz. Bu işlemleri sağlayacak bir Business katmanı (business layer) nasıl oluşturacağımıza bir bakalım. Bu sefer yine bildiğimiz işlemleri yapacağız. Örneğin, "CustomerManager" sınıfını oluşturuyoruz.

Bu sefer, bir "CustomerService" adında bir arayüz (interface) oluşturabiliriz. Genellikle bu arayüzü, işlemleri gerçekleştireceğimiz yapıya büründürmek için kullanırız. Bu arayüz içerisinde genellikle işlemleri yazarak, örneğin "GetByID" veya "Save" gibi metodları belirtiriz.

Ardından, "CustomerManager" sınıfını oluşturuyoruz. Bu sınıfı, "CustomerService" arayüzünü implement eden bir sınıf olarak tanımlıyoruz. Böylece, bu sınıf içinde gerekli metodları implement etmek zorunda kalıyoruz.

Bu noktada dikkat edilmesi gereken bir diğer şey, bu sınıfın içinde, işlemlerimizi gerçekleştirmek için gerekli olan diğer bileşenlere nasıl ulaşacağımızdır. Örneğin, "CustomerRepository" ile iletişim kurmamız gerekiyorsa, bunu sınıfın constructor'ında belirterek yapabiliriz.

Sonuç olarak, bu yapılar arasında iletişimi kurduk. Artık kontrolcü sınıfından servis sınıfına, oradan da repository sınıfına ulaşabiliyoruz. Çünkü bu, katmanlı mimari prensiplerine uygun bir yapıdır.

Bu bölümde oluşturduğumuz işlemleri, bir sonraki bölümde nasıl kullanacağımızı detaylı bir şekilde inceleyeceğiz. Görüşmek üzere!

Background Pattern
Birlikte öğrenelim

Sektörde en çok aranan yazılım becerilerini kazan

Yapay zeka desteği, birebir mentörlük saatleri, canlı dersler ve senin için özel hazırlanmış içeriklerle eksiklerini tamamla, düzenli geri bildirimler al ve öğrenme sürecini en verimli hale getir.

Yunus Emre Kabakcı

Patika+ mezunu

Patika+ Fullstack Web Development Bootcamp mezunumuz Yunus Emre,

3 ay içinde Katar’dan aldığı teklif ile, global bir şirket olan Pavo Group’da işe başladı!


“İçerik zenginliği, mentor desteği, ileriye dönük bir network sağlaması ve dünyada en çok tercih edilen frameworkler üzerinden bir eğitim veriyor olması Patika+’ı tercih etmemin temel sebepleri oldu!“

Yorumlar

Yorum yapabilmek için derse kayıt olmalısın!