Focus mode
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!
Programs to Accelerate Your Progress in a Software Career
Join our 4-8 month intensive Patika+ bootcamps, start with the fundamentals and gain comprehensive knowledge to kickstart your software career!
You need to enroll in the course to be able to comment!