نمایش نتایج 1 تا 18 از 18

نام تاپیک: سوال در مورد روابط 1 به 1 و n به n , .. در کلاس ها

  1. #1
    کاربر دائمی آواتار amirjalili
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    هر جایی که کنجکاویم و نیاز به دانستنم رو تحریک کنه
    پست
    792

    سوال در مورد روابط 1 به 1 و n به n , .. در کلاس ها

    دوستان من میخواستم اگر میشه روابط بین کلاسی رو برام توضیح بدید..
    ببینید مثلا در دیتا بیس کاملا روابط بین کلاسی رو میدونم.. اما در کلاس ها متوجه این روابط نمیشم.. در دیتابیس مقادیر تعیین شده در فیلد های یک جدول با فیلد های هم نوع در جدول دیگر رابطه دارند.. مثلا یک شخص میتونه چند تا ماشین داشته باشه و یک ماشین حتی ممکنه چند تا صاحب داشته باشه..
    اما در کلاس ها نمیدونم کلاس ها چطور رابطه دارند.. آیا attribute ها با ارتباط دارند یا متد ها؟؟
    اصلا کی با کی رابطه داره؟ اگر لطف کنید و با مثالی توضیح بدید ممنون میشم...

  2. #2
    کاربر دائمی آواتار Elham_gh
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    Tehran
    سن
    48
    پست
    718

    نقل قول: سوال در مورد روابط 1 به 1 و n به n , .. در کلاس ها

    كلي نوشتم پاك شد، اجالتا اين لينك رو مطالع كنيد تا دوباره توضيح بدم!!!
    https://barnamenevis.org/showthread.php?t=119555

  3. #3
    کاربر دائمی آواتار amirjalili
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    هر جایی که کنجکاویم و نیاز به دانستنم رو تحریک کنه
    پست
    792

    نقل قول: سوال در مورد روابط 1 به 1 و n به n , .. در کلاس ها

    ممنون خانم elham_gh ..
    شما همیشه لطف داشتید..
    ممنونم. شما و بعضی دوستان همیشه کامل جوابم رو دادید..
    اون لینک رو هم میخونم..
    مرسی

  4. #4
    کاربر دائمی آواتار cups_of_java
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    40
    پست
    1,544

    نقل قول: سوال در مورد روابط 1 به 1 و n به n , .. در کلاس ها

    ارتباط بین کلاس ها از نوع Association از طریق attributeها بر قرار می شه!
    ما دو نوع ارتباط داریم:
    Composition هر شی از یک کلاس (کل) از یک یا چند شی از کلاس دیگه (جز) تشکیل شده و جز بدون کل معنی ندارد!
    Aggregation هر شی از یک کلاس (کل) از یک یا چند شی از کلاس دیگه (جز) تشکیل شده ولی جز بدون کل معنا و ماهیت دارد!

    گاهی به طور کلی هر رابطه association بین کلاس ها رو می گن composition که تعریف دقیقی نیست.
    در مواردی که رابطه چند به چند می شه لازم هست که شما از لیست ها استفاده کنید!
    به رایطه درس و دانشجو توجه کنید! (هر دانشجو در چند درس شرکت می کنه! و هر درس چند دانشجو شرکت کننده داره!)

    class Student {
    list courses;
    }

    class Course {
    list students;
    }


  5. #5
    کاربر دائمی آواتار Elham_gh
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    Tehran
    سن
    48
    پست
    718

    نقل قول: سوال در مورد روابط 1 به 1 و n به n , .. در کلاس ها

    نقل قول نوشته شده توسط amirjalili مشاهده تاپیک
    دوستان من میخواستم اگر میشه روابط بین کلاسی رو برام توضیح بدید..
    ببینید مثلا در دیتا بیس کاملا روابط بین کلاسی رو میدونم.. اما در کلاس ها متوجه این روابط نمیشم.. در دیتابیس مقادیر تعیین شده در فیلد های یک جدول با فیلد های هم نوع در جدول دیگر رابطه دارند.. مثلا یک شخص میتونه چند تا ماشین داشته باشه و یک ماشین حتی ممکنه چند تا صاحب داشته باشه..
    اما در کلاس ها نمیدونم کلاس ها چطور رابطه دارند.. آیا attribute ها با ارتباط دارند یا متد ها؟؟
    اصلا کی با کی رابطه داره؟ اگر لطف کنید و با مثالی توضیح بدید ممنون میشم...
    "اما در کلاس ها نمیدونم کلاس ها چطور رابطه دارند.. آیا attribute ها با ارتباط دارند یا متد ها؟؟"
    هم هردو هم هيچكدام.بعضي از كلاسها با هم ارتباط دارند فقط به خاطر اينكه باهم ارتباط دارند و اين ربطي به ارتباط داشتن attribute ها ا متدهاشون نداره. اين نوع ارتباط assiciation است. مثلا كلاس Person و Company.كه بين اينها ارتباط Works for(از جهت Person بهCompany) بر قرار است، هيچ ربطي بين attribute ها و متدهاي اين دو كلاس نيست.
    اگر چنين ارتباطي بين attribute ها يا متدهاي 2 كلاس وجود داشته باشد ديگه اون رابطه اسمش Dependency است.كع تغييرات در يككلاس باعث تغييرات در كلاس ديگر هم مي شود

  6. #6
    کاربر دائمی آواتار Elham_gh
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    Tehran
    سن
    48
    پست
    718

    نقل قول: سوال در مورد روابط 1 به 1 و n به n , .. در کلاس ها

    نقل قول نوشته شده توسط cups_of_java مشاهده تاپیک
    ارتباط بین کلاس ها از نوع Association از طریق attributeها بر قرار می شه!
    نه دوست عزيز اون Dependency است
    ما دو نوع ارتباط داریم:
    Composition هر شی از یک کلاس (کل) از یک یا چند شی از کلاس دیگه (جز) تشکیل شده و جز بدون کل معنی ندارد!
    Aggregation هر شی از یک کلاس (کل) از یک یا چند شی از کلاس دیگه (جز) تشکیل شده ولی جز بدون کل معنا و ماهیت دارد!

    گاهی به طور کلی هر رابطه association بین کلاس ها رو می گن composition که تعریف دقیقی نیست.
    اينم درست نيست. ما 3 نو رابطه بيت كلاسها داريم:
    1-Association
    2-Dependency
    3-Generalization
    كه خود Composition وAggregation از انواع Association هستنددر حقيقت هر رابطه Composition ياAggregation بين كلاسها همان Association است كه حالت خاص تري شده اند.

  7. #7
    کاربر دائمی آواتار amirjalili
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    هر جایی که کنجکاویم و نیاز به دانستنم رو تحریک کنه
    پست
    792

    نقل قول: سوال در مورد روابط 1 به 1 و n به n , .. در کلاس ها

    نقل قول نوشته شده توسط Elham_gh مشاهده تاپیک
    نه دوست عزيز اون Dependency است


    اينم درست نيست. ما 3 نو رابطه بيت كلاسها داريم:
    1-Association
    2-Dependency
    3-Generalization
    كه خود Composition وAggregation از انواع Association هستنددر حقيقت هر رابطه Composition ياAggregation بين كلاسها همان Association است كه حالت خاص تري شده اند.
    با تشکر از دوستان محترم..
    به نظر من agreegation , composition ها از نوع association نیستند..
    انواع روابط بین کلاسی عبارتند از: 1: Relationship و 2: Association

    خود Relationship ها دو نوع هستند: generalization , Aggregation

    اما Association ها همون روابط همکاری بین کلاس ها هستند که با verb مشخص میشوند..
    مثلا کلاس دانشجو اخذ میکند(verb)درس را(class).. در منبع زیر فکر کنم توضیح کاملی داده شده.. با تشکر از پاسخ های دوستان

    http://en.wikipedia.org/wiki/Class_diagram
    آخرین ویرایش به وسیله amirjalili : شنبه 26 اردیبهشت 1388 در 12:24 عصر

  8. #8
    کاربر دائمی آواتار cups_of_java
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    40
    پست
    1,544

    نقل قول: سوال در مورد روابط 1 به 1 و n به n , .. در کلاس ها

    نقل قول نوشته شده توسط Elham_gh مشاهده تاپیک
    نه دوست عزيز اون Dependency است
    خود رابطه Association یک نوع dependency ایجاد می کنه. رابطه association با attribute ها بر قرار می شه. شما چطور می تونید یک رابطه association رو بر قرار کنید بین کارمند و اداره ای که کار می کنه؟ منظور از ارتباط association بر قرار کردن بین کلاس ها همین استفاده از یک کلاس در کلاس دیگر هست با استفاده از attributeها نه این که attribute های یک کلاس به کلاس دیگه ربط دارند!



    اينم درست نيست. ما 3 نو رابطه بيت كلاسها داريم:
    1-Association
    2-Dependency
    3-Generalization
    كه خود Composition وAggregation از انواع Association هستنددر حقيقت هر رابطه Composition ياAggregation بين كلاسها همان Association است كه حالت خاص تري شده اند.
    فکر کنم کامل ننوشتم شما هم با دقت نخوندین! اونجا منظور من ارتباط Association بود. که دو نوع داره!

    اما به طور کلی هم ما در شی گرایی دو نوع رابطه بین کلاس ها داریم:
    1. association
    2. generalization/specification

    بحث dependency بحث دیگه ای هست. رابطه dependency از طریق هر کدام از این دو نوع بالا ایجاد می شه و انواع دیگه ای هم داره. و جزدسته رابطه های بالا محسوب نمی شه چون باهاشون overlap داره و یک مفهوم منطقی هست!

    مفهوم لغات رو درست استفاده کنیم و با لغات بازی نکنیم!

  9. #9
    کاربر دائمی آواتار cups_of_java
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    40
    پست
    1,544

    نقل قول: سوال در مورد روابط 1 به 1 و n به n , .. در کلاس ها

    نقل قول نوشته شده توسط amirjalili مشاهده تاپیک
    با تشکر از دوستان محترم..
    به نظر من agreegation , composition ها از نوع association نیستند..
    انواع روابط بین کلاسی عبارتند از: 1: Relationship و 2: Association

    خود Relationship ها دو نوع هستند: generalization , Aggregation

    اما Association ها همون روابط همکاری بین کلاس ها هستند که با verb مشخص میشوند..
    مثلا کلاس دانشجو اخذ میکند(verb)درس را(class).. در منبع زیر فکر کنم توضیح کاملی داده شده.. با تشکر از پاسخ های دوستان

    http://en.wikipedia.org/wiki/Class_diagram

    نظر شما اشتباه هست. همون طور که گفته شد رابطه بین کلاسی (relationship)ها از دو نوع هستند و relationship کلن dependency می آره. به کاربرد درست لغات توجه کنید.
    http://en.wikipedia.org/wiki/Class_(computer_science

  10. #10
    کاربر دائمی آواتار Elham_gh
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    Tehran
    سن
    48
    پست
    718

    نقل قول: سوال در مورد روابط 1 به 1 و n به n , .. در کلاس ها

    نقل قول نوشته شده توسط cups_of_java مشاهده تاپیک
    خود رابطه Association یک نوع dependency ایجاد می کنه. رابطه association با attribute ها بر قرار می شه. شما چطور می تونید یک رابطه association رو بر قرار کنید بین کارمند و اداره ای که کار می کنه؟ منظور از ارتباط association بر قرار کردن بین کلاس ها همین استفاده از یک کلاس در کلاس دیگر هست با استفاده از attributeها نه این که attribute های یک کلاس به کلاس دیگه ربط دارند!



    فکر کنم کامل ننوشتم شما هم با دقت نخوندین! اونجا منظور من ارتباط Association بود. که دو نوع داره!

    اما به طور کلی هم ما در شی گرایی دو نوع رابطه بین کلاس ها داریم:
    1. association
    2. generalization/specification

    بحث dependency بحث دیگه ای هست. رابطه dependency از طریق هر کدام از این دو نوع بالا ایجاد می شه و انواع دیگه ای هم داره. و جزدسته رابطه های بالا محسوب نمی شه چون باهاشون overlap داره و یک مفهوم منطقی هست!

    مفهوم لغات رو درست استفاده کنیم و با لغات بازی نکنیم!

    دوست عزيز بازي با لغات كدومه؟!!!!
    اصلا اين جمله كه "رابطه dependency از طریق هر کدام از این دو نوع بالا ایجاد می شه و انواع دیگه ای هم داره" اشتباست. و اين جمله كه "خود رابطه Association یک نوع dependency ایجاد می کنه. " 1000% اشتباست.

    dependency يك نوع رابطه كاملا مستقل با نماد مشخص است(خط چين فلش دار) كه ذاتش با association فرق داره.association با اين خط صاف متتد با فلش يا بي فلش نشون داده مي شه. و من تا حالا خيچ جا نديدم كه اسم generalization معادل specification داشته باشه. بعد از 10 سال كار با UML گمانم در اين مورد اشتباه نكنم.
    در ضمن اينجا نه جنگ داريم نه ني خواهيم چيزي رو ثابت كنيم ، اما وقتي كسي داره حرف مارو ملاك كارش قرار مي ده نبايد نارحت شيم اگه اشتباه مي كنيم يا خوب عنوانش نمي كنيم ، كسي بياد اونو اصلاح كنه يا بهتر بيانش كنه

  11. #11
    کاربر دائمی آواتار amirjalili
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    هر جایی که کنجکاویم و نیاز به دانستنم رو تحریک کنه
    پست
    792

    نقل قول: سوال در مورد روابط 1 به 1 و n به n , .. در کلاس ها

    دوستان من اینجا فقط نقش یک شاگرد رو دارم و از هر دو تون تشکر میکنم..

    اما نفهمیدم که بالاخره حرف من راجع به تقسیم بندی انواع روابط کلاسی درست بود یا نه؟؟؟

    من اونا رو از اینترنت دیدم..

  12. #12
    کاربر دائمی آواتار cups_of_java
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    40
    پست
    1,544

    نقل قول: سوال در مورد روابط 1 به 1 و n به n , .. در کلاس ها

    به سوال اولیه دوستمون نگاه کنید! فکر نمی کنم بحثی از UML کرده باشند! ما اگه مفاهیم شی گرایی رو درست درک کنیم (بدون توجه به زبان نماد گذادری مثل UML) اون وقت هست که می تونیم از UML هم استفاده درست بکنیم.
    اون رابطه dependency که توسط خط چین نشون داده می شه یک نماد برای نمایش برخی گونه های dependency هست اما این یک مفهوم عام تر در شی گرایی هستش. ایا کلاس فرزند به کلاس پدر dependency نداره؟ قطعن داره اونم از نوع بسیار قوی! ولی این رو ما از طریق همون نماد generalization نشون می دیم در UML!
    dependency یک مفهوم عام هست! با اون dependency در UML اشتباهش نگیرید!

    رابطه association بین دو کلاس یعنی اون دو کلاس به هم dependency ایجاد می کنند! ولی در UML ما این رو با خط چین نشون نمی دیم چون مدل واضحی از dependency هست به نام association که خودش نماد داره!
    ولی برای حالتی که ما در پارامتر یک متد از یک کلاس استفاده می کنیم! این رو در نمودار کلاس نشون نمی تونیم بدیم جز خط چین!
    پس اون ها برای حالت هایی هستند که dependency هایی غیر از association یا generalization باشه ....


    من تا حالا خيچ جا نديدم كه اسم generalization معادل specification داشته باشه. بعد از 10 سال كار با UML گمانم در اين مورد اشتباه نكنم.
    شما UML رو خوب می شناسید وهرچی میگید هم درسته اما حاوی دید سطح بالای شی گرا به مفاهیم نیست. ببینید اون چه در UML به عنوان generalization می شناسید و در زبان ها به عنوان Inheritance خودش رو نشون می ده رابطه ای هست تحت عنوان روابط generalization/specification بین موجودیت ها
    generalization یعنی رو به بالا (دراوردن کلاس های عمومی تر-پدر-...)
    specification می شه رو به پایین (در اوردن کلاس های خاص تر-فرزند -...)
    این از مفاهیم طراحی شی گرا هستش که در UML از نماد generalization برای نمایششون استفاده می شه.

    ضمنن خیلی برام جالب بود! از عمر استاندارد شده UML فقط 12 سال می گذره! یعنی در سال 1999 هم تو ایران UML استفاده می شده؟!
    آخرین ویرایش به وسیله cups_of_java : شنبه 26 اردیبهشت 1388 در 23:46 عصر

  13. #13
    کاربر دائمی آواتار Elham_gh
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    Tehran
    سن
    48
    پست
    718

    نقل قول: سوال در مورد روابط 1 به 1 و n به n , .. در کلاس ها

    نقل قول نوشته شده توسط cups_of_java مشاهده تاپیک
    به سوال اولیه دوستمون نگاه کنید! فکر نمی کنم بحثی از UML کرده باشند! ما اگه مفاهیم شی گرایی رو درست درک کنیم (بدون توجه به زبان نماد گذادری مثل UML) اون وقت هست که می تونیم از UML هم استفاده درست بکنیم.
    اون رابطه dependency که توسط خط چین نشون داده می شه یک نماد برای نمایش برخی گونه های dependency هست اما این یک مفهوم عام تر در شی گرایی هستش. ایا کلاس فرزند به کلاس پدر dependency نداره؟ قطعن داره اونم از نوع بسیار قوی! ولی این رو ما از طریق همون نماد generalization نشون می دیم در UML!
    dependency یک مفهوم عام هست! با اون dependency در UML اشتباهش نگیرید!

    رابطه association بین دو کلاس یعنی اون دو کلاس به هم dependency ایجاد می کنند! ولی در UML ما این رو با خط چین نشون نمی دیم چون مدل واضحی از dependency هست به نام association که خودش نماد داره!
    ولی برای حالتی که ما در پارامتر یک متد از یک کلاس استفاده می کنیم! این رو در نمودار کلاس نشون نمی تونیم بدیم جز خط چین!
    پس اون ها برای حالت هایی هستند که dependency هایی غیر از association یا generalization باشه ....


    شما UML رو خوب می شناسید وهرچی میگید هم درسته اما حاوی دید سطح بالای شی گرا به مفاهیم نیست. ببینید اون چه در UML به عنوان generalization می شناسید و در زبان ها به عنوان Inheritance خودش رو نشون می ده رابطه ای هست تحت عنوان روابط generalization/specification بین موجودیت ها
    generalization یعنی رو به بالا (دراوردن کلاس های عمومی تر-پدر-...)
    specification می شه رو به پایین (در اوردن کلاس های خاص تر-فرزند -...)
    این از مفاهیم طراحی شی گرا هستش که در UML از نماد generalization برای نمایششون استفاده می شه.

    ضمنن خیلی برام جالب بود! از عمر استاندارد شده UML فقط 12 سال می گذره! یعنی در سال 1999 هم تو ایران UML استفاده می شده؟!
    منظورمن Object Oriented بود نه UMLكه اشتباه گفتم.
    بله از سال 75 من با Object Oriented آشنا شدم و از 2 سال بعدش بصورت جدي تر باهاش درگير شدم.

  14. #14
    کاربر دائمی آواتار Elham_gh
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    Tehran
    سن
    48
    پست
    718

    نقل قول: سوال در مورد روابط 1 به 1 و n به n , .. در کلاس ها

    نقل قول نوشته شده توسط amirjalili مشاهده تاپیک
    دوستان من اینجا فقط نقش یک شاگرد رو دارم و از هر دو تون تشکر میکنم..

    اما نفهمیدم که بالاخره حرف من راجع به تقسیم بندی انواع روابط کلاسی درست بود یا نه؟؟؟

    من اونا رو از اینترنت دیدم..
    نه دوست عزيز. تقسيم بندي شما درست نيست.
    من به شما پيشنهاد مي كنم كتاب زير رو Download كنيد. براي شروع كتاب خوبيه.
    Addison Wesley - The UML User Guide
    هر چند UML1 است.اما جز مبحث Component ها تغييرات بيشتر است از بقيه فصلها خوب مي تونيئ استفاده كنيد.
    ebook ش در اينترنت هست.يا از طريق emule دانلود كنيد

  15. #15
    کاربر دائمی آواتار Elham_gh
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    Tehran
    سن
    48
    پست
    718

    نقل قول: سوال در مورد روابط 1 به 1 و n به n , .. در کلاس ها

    انواع ارتباط و تعريف مختصري از هر كدوم رو از كتابي كه در پيغام قبلي گفتم رو انتخاب كردم و اينجا مي ذارم
    عکس های ضمیمه عکس های ضمیمه  

  16. #16
    کاربر دائمی آواتار cups_of_java
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    40
    پست
    1,544

    نقل قول: سوال در مورد روابط 1 به 1 و n به n , .. در کلاس ها

    نقل قول نوشته شده توسط Elham_gh مشاهده تاپیک
    انواع ارتباط و تعريف مختصري از هر كدوم رو از كتابي كه در پيغام قبلي گفتم رو انتخاب كردم و اينجا مي ذارم
    خب! بیان از اول با هم بخونیمش:
    Relationship is a connection among things
    آقای Booch در این فصل داره انواع ارتباط ها رو در UML می گه. ارتباط رو تعریف می کنه هر اتصالی بین اجزا! حالا این اجزا می تونن هر عنصری در مدل باشن! مثل کلاس! مثل مولفه مثل actor مثل use case مثل...
    ایشون اینجا از روابط بین کلاسی حرف نمی زنند (هرچند اعم این روابط بین کلاس ها هستند!) توجه کنید این یک کتاب UML هست نه تحلیل طراحی شی گرا! (کتاب تحلیل طراحی آقای Booch رو هم نگاهی بندازید! یا هر کتاب تحلیل طراحی شی گرای مناسب دیگه) دید این کتاب UMLی هست و داره انواع relationshiop در UML رو تعریف می کنه (نه ارتباط های بین کلاس ها) که دقیقن هم ۴تا هستند همون طور که گفته!
    حالا جمله بعد رو ببینیم:
    In Object Oriented modeling, the four most important ...
    توجه کنید چطور جمله رو شروع کرده! گفته در مدل سازی شی گرا (یعنی مثلن UML) نگفته در تحلیل و طراحی شی گرا! تازه دیگه بد تر! نگفته در تحلیل و طراحی کلاس ها!
    ببینید! جمله ای که اوردین از یک context مدل سازی و uml داره می اد نه تحلیل و طراحی شی گرا!
    بازم عرض می کنم که در فلسفه تحلیل و طراحی شی گرا بین کلاس ها ما در اساس دو نوع رابطه داریم
    ۱. روابط یا از نوع association هستند که خود انواع دارد.
    ۲. یا اینکه از نوع generalization/specification هستند که یک کلاس حالت کلی تر (general) یا پدر کلاسی دیگر هست و یا کلاسی حالت خاص تر (specific) یا فرزند کلاسی دیگر است!

    هر کدوم از روابط بالا dependency از نوع قوی می ارند ولی انواع ضعیف تری از dependency هم هست که از طریق مثلن استفاده یک کلاس در ارگومان های یک متد و ... ایجاد می شه! که ما همه این dependency ها رو مدل نمی کنیم. (این مسله هم علت داره) ما حتی همه associationها رو هم گاهن مدل نمی کنیم!

    من از ابتدا نظرم این بود که دوست عزیزمون (که در بحث هایی که ایجاد می کردند معلوم بود دارن شی گرایی رو یاد می گیرند) از اساس با لغات و اداب تحلیل و طراحی آشنا باشن و بعد UML رو کامل یاد بگیرند. من اعتقاد دارم کسانی که فقط از طریق UML و کاربرد با این فضا آشنا شن احتمال اینکه دید کامل و روشنی که یک طراح یا تحلیل گر شی گرا داشته باشه رو نخواهند داشت!
    توجه کنید ما از UML استفاده می کنیم اما بعضن اصلن پایبند به اصول شی گرا مدل نمی کنیم چون شی گرایی رو خوب بلد نیستیم!

  17. #17
    کاربر دائمی آواتار Elham_gh
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    Tehran
    سن
    48
    پست
    718

    نقل قول: سوال در مورد روابط 1 به 1 و n به n , .. در کلاس ها

    نقل قول نوشته شده توسط cups_of_java مشاهده تاپیک
    خب! بیان از اول با هم بخونیمش:

    آقای Booch در این فصل داره انواع ارتباط ها رو در UML می گه. ارتباط رو تعریف می کنه هر اتصالی بین اجزا! حالا این اجزا می تونن هر عنصری در مدل باشن! مثل کلاس! مثل مولفه مثل actor مثل use case مثل...
    ایشون اینجا از روباط بین کلاسی حرف نمی زنند (هرچند اعم این روابط بین کلاس ها هستند!) توجه کنید این یک کتاب UML هست نه تحلیل طراحی شی گرا! (کتاب تحلیل طراحی آقای Booch رو هم نگاهی بندازید! یا هر کتاب تحلیل طراحی شی گرای مناسب دیگه) درد این کتاب UMLی هست و داره انواع relationshiop در UML رو تهعریف می کنه که دقیقن هم ۴تا هستند همون طور که گفته!
    حالا جمله بعد رو ببینیم:

    توجه کنید چطور جمله رو شروع کرده! گفته در مدل سازی شی گرا (یعنی مثلن UML) نگفته در تحلیل و طراحی شی گرا! تازه دیگه بد تر! نگفته در تحلیل و طراحی کلاس ها!
    ببینید! جمله ای که اوردین از یک context مدل سازی و uml داره می اد نه تحلیل و طراحی شی گرا!
    بازم عرض می کنم که در فلسفه تحلیل و طراحی شی گرا بین کلاس ها ما در اساس دو نوع رابطه داریم
    ۱. روابط یا از نوع association هستند که خود انواع دارد.
    ۲. یا اینکه از نوع generalization/specification هستند که یک کلاس حالت کلی تر (general) یا پدر کلاسی دیگر هست و یا کلاسی حالت خاص تر (specific) یا فرزند کلاسی دیگر است!

    هر کدوم از روابط بالا dependency از نوع قوی می ارند ولی انواع ضعیف تری از dependency هم هست که از طریق مثلن استفاده یک کلاس در ارگومان های یک متد و ... ایجاد می شه! که ما همه این dependency ها رو مدل نمی کنیم. (این مسله هم علت داره) ما حتی همه associationها رو هم گاهن مدل نمی کنیم!

    من از ابتدا نظرم این بود که دوست عزیزمون (که در بحث هایی که ایجاد می کردند معلوم بود دارن شی گرایی رو یاد می گیرند) از اساس با لغات و اداب تحلیل و طراحی آشنا باشن و بعد UML رو کامل یاد بگیرند. من اعتقاد دارم کسانی که فقط از طریق UML و کاربرد با این فضا آشنا شن احتمال اینکه دید کامل و روشنی که یک طراح یا تحلیل گر شی گرا داشته باشه رو نخواهند داشت!
    توجه کنید ما از uml استفاده می کنیم اما بعضن اصلن پایبند به اصول شی گرا مدل نمی کنیم چون شی گرایی رو خوب بلد نیستیم!
    دوست محترم
    من اين مباحث رو از فصل كلاسها برداشتم!!! و اين هم انواع روابط بين كلاسهاست.
    و اين "گفته در مدل سازی شی گرا (یعنی مثلن UML) نگفته در تحلیل و طراحی شی گرا! تازه دیگه بد تر! نگفته در تحلیل و طراحی کلاس ها!"
    خيلي جالبه....

    در ضمن گمانم در اين تاپيك ديگه بحثي ندارم. چون گويا از حالت علمي داره خارج مي شه و شده كل كل. ساير دوستان خودشون مي خونن و مطالب درست رو استخراج خواهند كرد

  18. #18
    کاربر دائمی آواتار cups_of_java
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    40
    پست
    1,544

    نقل قول: سوال در مورد روابط 1 به 1 و n به n , .. در کلاس ها

    نقل قول نوشته شده توسط Elham_gh مشاهده تاپیک
    دوست محترم
    من اين مباحث رو از فصل كلاسها برداشتم!!! و اين هم انواع روابط بين كلاسهاست.
    و اين "گفته در مدل سازی شی گرا (یعنی مثلن UML) نگفته در تحلیل و طراحی شی گرا! تازه دیگه بد تر! نگفته در تحلیل و طراحی کلاس ها!"
    خيلي جالبه....
    نمی دونم چه موضوعی دراستدلال من براتون این طور تمسخرآمیز جالبه و اون رو بدون منطق می دونید!

    در ضمن گمانم در اين تاپيك ديگه بحثي ندارم. چون گويا از حالت علمي داره خارج مي شه و شده كل كل. ساير دوستان خودشون مي خونن و مطالب درست رو استخراج خواهند كرد
    انسان ها هدفشون از جمع شدن در این مکان ها کل کل کردن نیست! اگه شما حوصله بحث کردن ندارید یا شما فکر می کنید بحث داره از حالت علمی خارج می شه این نظر شخصیه شماست و البته محترمه!
    در حالی که حرف های من بیشتر زمینه بحث علمی رو ایجاد کرده چون ریز بینانه و دقیق داره بحث رو باز می کنه.

    یه نگاهی به اینجا بندازین:
    http://g.oswego.edu/dl/oosd/ch4.html

    به این صفحه و تقسیم بندیش از relationshipها توجه کنید! قسمت dependency رو بخونید!
    http://en.wikipedia.org/wiki/Class_diagram


    اقای Booch در کتاب تحلیل و طراحیشون (صفحه ۹۶) روابط بین کلاس ها رو از سه نوع می دونند:
    ۱. generalization/specification: (که دوستانی که دم از علم می زنند حتی اسمش رو هم به طور کامل نشنیده بودند)
    ۲. aggregation (whole/part)
    ۳. Association

    من (با توجه به کتاب هایی که در زمنیه تحلیل و طراحی دیدم) برای راحتی درک و از نظر منطقی به ایشون این تقسیم بندی رو گفتم:
    ۱. generalization/specification
    ۲. روابط association که به دو دسته تقسیم می شن!
    ۲.۱ Aggregation
    ۲.۲ Composition
    یعنی نا خداگاه همون تقسیم بندی اقای Booch ولی با دقت بالاتر و قابل فهم تر! توضیحش رو در پست های قبلیم دادم.

    نهایتن ایشون در همون کتاب و در آخر اون قسمت (صفحه ۱۱۱) dependencyها رو به عنوان نوع دیگری از روابط می دونن که یک پاراگراف براش توضیح دادن. ( در مقابل توضیحات گسترده ای که برای ۳ نوع قبل داده اند)

    با مطالعات و باز شدن دید می تونید درکتون رو نسبت به dependency کامل تر کنید! dependency مفهوم وابستگی هست و هر ارتباطی یعنی وابستگی!
    اگه وقت داشتین بحث های coupling رو از دید اقایان Coad و یا demarco مطالعه کنید!


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

    صلاح ملک خویش خسروان دانند و بس!

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •