مقاله ی ایجاد اشیا با روش های برتر در Domain Driven Design را در این قسمت از وبسایت آموزش برنامه نویسی پرووید به شما تقدیم می کنیم.

ایجاد اشیا با روش های برتر در Domain Driven Design #1

اگر تا به حال یک DTO را ساخته اید که چندین شی مختلف را در قالب یک شی یکپارچه می‌کند می‌توانیم بگوییم که از مفهوم Aggregate در Domain Driven Design استفاده کرده اید. اما نکته ای که باید از آن اطلاع داشته باشید این است که برای به دست آوردن بهترین مزایای ارائه شده توسط Domain Driven Design قوانینی وجود دارند که باید از آنها تبعیت کنید. اگر این قوانین را در نظر بگیرید مسائلی همچون Performance و Maintainability و Scalability را بدست خواهید آورد.

بسته ی آموزش کاربردی طراحی نرم افزار Domain Driven Design

از شما دعوت می کنیم از بسته ی آموزش کاربردی طراحی نرم افزار Domain Driven Design دیدن کنید.

بسته ی آموزش اصول طراحی نرم افزار Domain Driven Design

از شما دعوت می کنیم از بسته ی آموزش اصول طراحی نرم افزار Domain Driven Design دیدن کنید.

اگر تجربه برنامه نویسی در ASP.NET MVC را دارید ممکن است عادت به ساختن Model Class هایی داشته باشید که تمامی داده‌های مورد نیاز توسط یک View را در خود جای میدهند. در بعضی دیگر از انواع Application ها به این کلاس ها DTO و یا Data Transfer Object می گویند. در فریم ورک ASP.NET MVC برنامه نویس اغلب در درون یک متد این DTO ها را به سمت View ارسال می‌کند و سپس یک View را از طریق یکی از پارامترهای ورودی که آپدیتهای انجام شده روی این DTO را هندل میکند. در ادامه تکه کدی از فریم ورک ASP.NET MVC برای شما در نظر گرفته شده است.

Public Function UpdateSalesOrder(so As SalesOrder) As ActionResult
  ...code to assemble the SalesOrder...
  Return View("UpdateOrder", so)
End Function


Public Function UpdateSalesOrder(so As SalesOrder) As ActionResult
  ...code to use the SalesOrder to update the database...
  Return View("UpdateOrder", so)

در این کد Action Method ی وجود دارد که الگویی که در جملات قبلی گفتیم را پیاده سازی می کند. برنامه نویس هایی که تجربه کار کردن ASP.NET MVC را دارند این الگو را به راحتی درک می‌کنند. آنها اغلب از این الگو برای ساختن اشیایی که تعدادی از داده ها را در کنار هم قرار می‌دهد تا بتواند توسط کلاینت به روز رسانی و return می شود استفاده می کنند.

استفاده از DTO به این شکل بسیار شبیه به مفهوم Aggregate ها در Domain Driven Design می‌باشد. در Domain Driven Design یک Aggregate کلاسی است که حاوی چندین Object دیگر است و تمامی محتویات لازم برای انجام یک تراکنش تک را دارد. البته در Domain Driven Design قوانینی برای ایجاد کردن Aggregate ها وجود دارد که تبعیت از آن قوانین مزایایی از قبیل Simplicity و Maintainability و Responsiveness و Scalability را حاصل می شود. چنین قوانینی که در ساختن Aggregate ها در Domain Driven Design موجود می باشند برای جلوگیری از به وجود آمدن سیکل CRAP که در یک مقاله دیگر بر روی وبسایت پرووید از آن حرف زده شد مطرح شده اند.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *