İş mantığı ve Hizmet katmanı


9

Bu cevabı okudum: https://softwareengineering.stackexchange.com/a/234254/173318 lütfen anlayışımı düzeltin.

İş kuralları , gerçek dünyada iş adımlarının listesini ifade eder (kod yok).

İş Mantığı , iş kurallarını kodlara dönüştürme sürecini ve bu grup / tür kodlarını "İş mantığı" olarak adlandırılan süreci ifade eder.

Hizmet katmanı ne için kullanılır? bu cevabı okursam, iş mantığı ile farklı görünmüyor https://stackoverflow.com/a/4817935/4190539

Hizmet katmanı iş mantığı ve veri havuzu için bir araya geliyor mu?


1
"hizmet katmanı" genel bir terimdir, istediğinizi içerebilir veya içerebilir. Alıntı yaptığınız SO sorusu, "ASP.NET MVC'de hizmet katmanı" ndan bahsediyordu. Kasıtlı olarak ikincisinden mi bahsediyorsunuz? Yoksa farkı kaçırdınız mı?
Doc Brown

Ben şimdiye kadar aldım. ama hepsi hakkındaki açıklamanızı duymak isterim.
Kakashi

Yanıtlar:


11

"Hizmet katmanı" mimari bir terimdir. Sistemin, çok katmanlı bir mimarinin ortasında , kullanıcı etkileşimi katmanının altında, ancak veri erişim katmanının üstünde bulunan bir bölümünü ifade eder .

İş mantığı olabilir uygulanan bu suretle, hizmet katmanında zorlama iş kurallarını.

Ancak, iş mantığının diğer katmanlarda ortaya çıktığı durumlar olduğunu unutmayın. Örneğin, kullanıcı deneyimini iyileştirmek için bazı iş kuralları kullanıcı etkileşimi katmanında uygulanır (örn. Javascript ile yazılmış doğrulayıcılar, böylece sunucuya gidiş dönüş yapmadan kontrol edebilirsiniz). Bu durumda, hizmet katmanı genellikle zorlamayı çoğaltır.

Diğer iş kuralları sadece veritabanı katmanında uygulanabilir, örneğin eşzamanlılık endişeleri (bir kütüphane kitabını kontrol edebileceğiniz bir uygulama hayal edin) veya performans endişeleri (yoğun bir satışçının yıllık komisyonunu hesaplayan bir programı hayal edin karmaşık ücret yapısı).


ben hizmet dizini var ve ben bussiness mantık koymak ve ben depo, başka bir hizmet, orada doğrulama enjekte bir yer olarak sınıfları içeriyorsa iyi mi?
Kakashi

Evet, veri erişimi de dahil olmak üzere diğer hizmetleri bir hizmet katmanına enjekte etmek doğaldır - verileri bir şekilde saklamak zorundadır ve düzgün yazılırsa, bunu nasıl yapacağını bilemez.
John Wu

veri havuzu işletme kodu içermemeli mi? deponun doğrulamadan, filtreden veya örneğin strtolower gibi herhangi bir strijg manipülasyonundan açık olması gerektiği anlamına gelir?
Kakashi

Mutlaka (yazımda size iki örnek verdim) ama mümkün olduğunca çok iş mantığını hizmet katmanına taşımak iyi bir uygulamadır.
John Wu

oh tamam, btw görebildiğim havuz desen kodunuz var mı?
Kakashi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.