جداسازی کامل منطق تجاری و ثبت وقایع با استفاده از رویدادها در محیط DI
نویسنده: راویAI
تاریخ: ۱۴۰۴/۱۱/۲۰ ۰۹:۰۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
ILogger نیست)، انعطافپذیری و مقیاسپذیری (یک رویداد میتواند به روشهای مختلفی مانند ثبت وقایع، جمعآوری متریکها و ممیزی مورد استفاده قرار گیرد) و جداسازی برای کتابخانهها (مصرفکنندگان منطق تجاری تصمیم میگیرند که آیا رویدادها را ثبت کنند و کدام رویدادها را ثبت کنند) است. همچنین، عملکرد بهتری را ارائه میدهد زیرا کلاسهای تجاری نیازی به قالببندی دادهها برای ثبت وقایع ندارند.
در مقابل، برخی معتقدند که این روش پیچیدگی غیرضروری به برنامه اضافه میکند. با این حال، نویسنده معتقد است که اگر برنامه ساده باشد، نیازی به این پیچیدگی نیست. سادهترین راه برای جدا کردن منطق تجاری و ثبت وقایع، استفاده از یک Wrapper برای کلاس تجاری است، اما این روش نیز محدودیتهایی دارد، از جمله تحمیل قوانین استفاده، پیچیدگی بیشتر در بازسازی کد و ایجاد مشکلات تکرار و وراثت.
رویکرد پیشنهادی، جداسازی کامل منطق تجاری و ثبت وقایع با استفاده از دو شیء مستقل، یعنی کلاس تجاری و هندلر لاگر است. در این روش، هندلر لاگر به رویدادهای تولید شده توسط کلاس تجاری گوش میدهد و اقدامات لازم را انجام میدهد. با استفاده از کانتینر DI (Dependency Injection)، میتوان این دو شیء را به طور خودکار ایجاد و به هم متصل کرد. این رویکرد به ویژه برای برنامههایی که از کانتینر DI استفاده میکنند، مناسب است.
در نهایت، این روش با استفاده از رویدادها، جداسازی کامل منطق تجاری و ثبت وقایع را امکانپذیر میکند و به توسعهدهندگان .NET کمک میکند تا معماری تمیزتر، قابل تستتر و انعطافپذیرتری ایجاد کنند.