ویرگول
ورودثبت نام
وحید چشمی
وحید چشمی
خواندن ۲ دقیقه·۳ سال پیش

تفاوت میان POCO, Value Object و DTO

در این مقاله تفاوت میان DTO، Value Object و POCO را بررسی خواهم کرد.

اما ابتدا بینیم هریک مخفف چه کلماتی هستند:

· DTO (Data Transfer Object)

· POCO (Plain Old CLR Object)

در محیط جاوا نام POCO را به نام POJO یا Plain Old Java Object میشناسند، دلیل نامگذاری تفاوتهای ساختاری میان NET. و جاوا میباشد.

تعاریف:

تعریف DTO : نمایش دهنده داده ها بدون داشتن منطقی درون خود میباشد، DTO ها معمولا برای تبادل اطلاعات بین برنامه ها و لایجه های مختلف یک برنامه استفاده میشوند.

تعریف Value Object : یک عضو کامل از Domain model هستند. هر قانونی که در Entity صورت میگیرد در Value Object هم صورت میگیرد. تفاوت اصلی بین Value Object و Entity در این است که Value Object ها هیچ Id در خود نگهداری نمیکنند. به این معنی که دو Value Object با پراپرتی های یکسان باید با هم یکسان باشند اما این قانون در Entity ها نباید یکسان باشد و دلیل آن وجود Id در Entity ها می باشد. Value Object ها همچنین دارای منطق میباشند و عموما برای تبادل بین داده ها در مرزهای برنامه استفاده نمی شوند.

تعریف POJO یا POCO : توسط آقای مارتین فاولر در ابتدای دهه 2000 معرفی شد. هدف اصلی آن این بود که یک دامین به راحتی میتواند بدون ارتباطات پیچیده مدل سازی شود.

ارتباطات میان POCO, DTOو Value Object:

آیا ارتباطی بین این اصطلاحات وجود داری؟ بله چند ارتباط وجود دارد.

اول از همه، DTO و Value Object مفاهیم متفاوتی را ارائه میدهند و نمیتوانند با هم معاوضه شوند. از سویی دیگر، Value object و DTO زیر مجموعه POCO هستند.


به بیان دیگر Value Object و DTO نباید از کامپوننتهای enterprise مانند DBCommand ارث بری کنند.

اما POCOها مجموعه های عریض تری هستند که میتوانند Value Object، Entity، DTO و یا هر کلاس دیگری که در برگیرنده پیچیدگی نباشد باشند.

بصورت دیگر :


در این مقاله سعی کردم توضیحات مختصری در مورد ValueObject, POCO و DTO ارائه بدم و تفاوتهای اساسی آنها را با هم بررسی کردیم.


برنامه نویسیطراحیمعماری نرم افزار
ســلام، من وحید هستم، چند سالی هست که دستم رو کیبورده و کد میزنم. دوست دارم چیزی که تجربه میکنم رو با شما به اشتراک بزارم.https://youtube.com/@devlife013
شاید از این پست‌ها خوشتان بیاید