PDA

View Full Version : سوال: مخرب كلاس ها



mohamad100000
پنج شنبه 06 تیر 1392, 12:28 عصر
سلام دوست عزيز

يه سوال تخصصي داشتم كه اميدوارم بتوني جوابشو بدي

من دارم مهندسي نرم افزار مي خونم و برنامه هايي كه مدلسازي مي كنم با سي شارپ كدنويسي مي كنم، و در طراحي نمودار هاي Sequence ، سه نوع كلاس را به ما معرفي كردند، كلاس كنترلي ،كلاس entity و كلاس هاي واسط.

فرض بر اين بگيريم كه براي ذخيره داده ها در ديتا بيس، يك كلاس كنترلي ديگر بنام Transaction تعرف مي كنيم كه كلاس entity فقط بيانگر منطق برنامه كاربردي باشد نه مطنق ذخيره سازي، و براي ذخيره سازي داده ها از كلاس Transaction استفاده مي كنيم.يعني از كلاس Entity به كلاس Transaction بفرستيم.

نكته مهمي ديگر اينست : كه كلاس ها نبايد بهم وابستگي داشته باشنده و تنها وابستگي اون ها از طريق كلاس كنترلي برنامه است كه سناريو جريان كاررا در خود تعريف كرده است.

يعني به اين شكل:

داده از واسط به وسيله كلاس كنترلي گرفته مي شود.

در كلاس entity ارزيابي و ذخيره مي شود.سپس

دوباره كلاس كنترلي ، كنترل برنامه را بدست مي گيرد

به كلاس Transaction دستور مي دهد، داده ها را از كلاس Entity دريافت و در ديتابيس ذخيره كند.

اما وقتي در محيط سي شارپ مدلم رو پياده سازي مي كنم با يك مشكل خيلي حاد برخورد مي كنم. و اون مشكل اينه كه در ارتباطات بين كلاس ها ، كلاس Entity من توسط مخرب از بين ميرود.

وقتي كنترل برنامه از Entity به كلاسي ديگر واگذار مي شود. مخرب ديگر با توجه به اينكه هيچ اشاره گري به اون توجه اي نداره ، شي كلاس Entity رو از بين ميبره.

حال سوال مبهم من براي كلاس Entity اينه‌:

چگونه يك كلاس Entity پايدار رو در سي شارپ تعريف كنيم؟

كلاسي كه در پس زمينه كلاس هاي ديگه فعال باشه و توسط مخرب از بين نره؟

كلاسي كه طول عمر اون بدست مخرب نباشه ؟

يك كلاس كه تا آخر سناريو من دوام بياره؟

Mahmoud.Afrad
پنج شنبه 06 تیر 1392, 14:42 عصر
همینقدر که من متوجه شدم کلاس Transaction کلاس دسترسی به داده هاست و کلاس Entity هم لایه منطق برنامه تون هست. درسته؟ خب در این حال لایه UserInterface شئ ای از entity رو ایجاد میکنه و این شئ باید تا آخر عملیات پردازش و ذخیره اطلاعات وجود داشته باشه. کلاس entity هم باید به صورت درونی یک شئ از کلاس transaction برای ذخیره اطلاعات ایجاد کنه. فکر کنم شما در روند ایجاد شئ از کلاسها و منطق مشکل دارید.

یک تکه کد که نشون بده چجوری اطلاعات رو پردازش و ذخیره میکنه قرار بدید. اگر بتونید کد کلاسهاتون رو هم بزارید که چه بهتر.