سلام،
لطفا به اين صفحه مراجعه كنيد:
http://www.dofactory.com/Patterns/Pa...te.aspx#_self2
اين الگوي composite هستش كه بنده در مورد قسمتي از نمودار ابهام دارم، سوالم اين هست كه چرا رابطه بين كلاس Composite و componenet در نمودار از نوع Aggregation است در حالي كه با توجه به كد من احساس ميكنم بايد رابطه از نوع Composition باشه چون با توجه به اين خط از كد اول:
private List<Component> _children = new List<Component>();
طول عمر كلاس كامپوننت وابسته به كلاس composite است، و به عبارتي كلاس componentبدون كلاس Composite غير قابل تصوره كه اين تعريف دقيقا مفهوم رابطه Compositionرو ميرسونه حالا موندم چرا اينجا از رابطه Aggregation استفاده شده!؟
ضمنا يك سوال ديگه هم در مورد uml دارم،
وقتي در مورد روابط در uml صحبت ميكنيم بايد به مفهوم بصري اش نگاه كنيم يا به كد؟ مثلا بايد به اين نگاه كنيم كه چون دكمه هاي مينيمايز و ماكسيمايز و خروج وابسته به پنجره هستند رابطه بين اينها از نوع composition است يا بايد به كد نگاه كنيم؟ اگه بايد به كد نگاه كنيم چرا همه جا آوردند اين رو با مثال هاي شهودي بيان كردند شبيه اين :
http://javapapers.com/oops/associati...on-dependency/
همچنين چرا اينقدر تفاوت در توضيح وجود داره، يه جاهايي اصلا به رابطه Dependency اشاره نشده، يه جايي تفاوت Dependency و Assosiation بيان شده. يه جا پياده سازي اينترفيس توسط كلاس هاي تابعه از نوع realization عنوان شده و يه جاي ديگه از نوع generalization .
حتي در نمودار هاي مربوط به ديزاين پترن ها هم اختلاف نظر وجود داره، من نميدونم اگه اين uml يك ابزار مهندسي هستش پس اين تفاوت نظر ها در چيه. من سوالم رو حتي در Stackoverflow و ... هم پرسيدم ولي اونها مثل اينكه حوصله اين مباحث رو ندارن، به قول Agile اي ها مثل اينكه اين ابزار فقط براي تزئئين ساخته شده و از هيچ استاندار محكمي هم تبعيت نميكنه.
دوستان لطفا در اين زمينه توضيح دهيد، ضمنا اگر منبعي براي آشنايي با uml مخصوصا بحث relationship ها سراغ داريد بيان كنيد، لطفا منبعي كه معرفي مي كنيد :
روابط رو با توضيح+كد+نمودار معرفي كنه، وجود تنها يكي از اينها كفايت نميكنه، حداقل اگه كد تنها هم وجود داشته باشه مشكلي نيست.
من آدم تنبلي نيستم كه دنبال اين چيزها نباشم، مشكل اينه كه بدبختي اصلا چيزي پيدا نميشه كه بخونيم. همه چي پراكنده است و كامل نيست، دنبال يك منبع كامل و دقيق و طبق استاندارد هستم.
لاتين و يا فارسي بودن منبع نيز مهم نيست.
با سپاس/.