تفاوت برنامه نویسی جزءگرا و برنامه نویسی شیءگرا (COP vs. OOP)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
تفاوتهای COP با OOP :
COP مبتنی بر واسط می باشد ، در حالیکه OOP مبتنی بر اشیاست.
COP تکنولوژی بسته بندی و توزیع می باشد ؛ در حالیکه OOP یک تکنولوژی پیاده سازی محسوب می گردد.
COP از قابلیت استفاده مجدد در سطح بالا پشتیبانی می کند ، در
حالیکه OOP
از قابلیت استفاده مجدد در سطح پایین پشتیبانی می کند.
COP ، در اصل می تواند در هر زبانی نوشته شود ، در حالیکه OOP
محدود به زبانهای شی گرا می باشد.
COP مولفه ها ارتباطات ضعیفی (Loosely Coupled)
دارند در حالیکه در OOP اشیاء وابسته به همـدیگر از طریق پیاده سازی وراثت (ارث بری )
، دارای ارتباطات محکم ( Loosely Coupled) می باشند.
COP ، از واسطهای چند گانه و طراحی مبتنی بر واسط پشتیبانی می
کند ، در حالیکه OOP ارتباطات واضحی از واسطها ی میان ابرکلاس و زیر کلاسها را
فراهم نمی کند.
COP از اتصـالات و اکتشافات پویا ( اتـصال در زمان اجرا )
پشتیبانی می کند، در حالیکه OOPپشتیبانی محدودی از مـکانیزمهای ترکیب زمان
اجرا و بازیـابی اشیا را فـراهم می آورد .
COP مکانیزمهای بهتری برای ترکیب فراهم می کند ، در حالیکه OOP
شکلهای محدودی از اتصالات را از طریق فراخوانی فراهم می آورد .
COP از خدمات امنیتی ، تراکنشها و غیره در سطح بالایی پشتیبانی می
کند ، در حالیکه OOP مجموعه محدودی از خدمات امنیتی ، تراکنشها و غیره را پشتیبانی می کند.
در COP ، مولفه ها با در نظر گرفتن قوانین اساسی Framework (چهارچوب ) مولفه
ها ، طراحی می شوند در حالیکه OOP با در نظر گرفتن اهداف شیء گرایی طراحی می شوند .
جدول زیر بحث مختصری از شباهتها و تفاوتهای ما بین
برنامه نویسی ساختیافته ، شیء گرا و مولفه
ای را ارائه کرده است.
قابلیت ترکیب در برنامه نویسی ساختیافته خیلی پایین است در شیء گرا بالاست و در مولفه ای خیلی بالاست . دو واحد پیاده سازی مختلف در برنامه نویسی ساختیافته هرگز با همدیگر قابل تعویض نیستند ، در برنامه نویسی شیء گرا دو شی متفاوت پیاده سازی شده که ویژگیهای مشابه داشته باشند با همدیگر قابل تعویض هستند در حالیکه در برنامه نویسی مولفه ای ، مولفه های متفاوت با ویژگیهای مختلف با همدیگر قابل تعویض هستند .
قابلیتها |
COP |
OOP |
SP |
تقسیم و غلبه · مدیریت پیچیدگی · تقسیم کردن یک مسئله بزرگ به بخشهای کوچکتر |
√
|
√
|
√ |
یکپارچگی داده و تابع · یک نهاد نرم افزاری ، داده ها و عملیاتی که بر روی داده ها انجام می گیرد را ترکیب می کند. · بهبود دادن انسجام یا پیوستگی ( cohesion ) |
√
|
√ |
- |
کپسوله سازی · کاربر یک نهاد نرم افزاری ، از چگونگی ذخیره داده ها و پیاده سازی توابع اطلاعی ندارد. · کاستن اتصالات ( پیوستگی) |
√ |
√ |
- |
مشخصه · هر نهاد نرم افزاری یک مشخصه (ویژگی ) منحصر به فرد دارد . |
√ |
√ |
- |
واسط · وابستگی بین مشخصات را نشان می دهد. · مشخصه (ویژگی) مولفه را به واسطها تقسیم می کند · کاستن وابستگیهای داخلی مولفه ای |
√ |
- |
- |
پیکربندی · یک واحد انتزاعی که به طور مستقل می تواند توسعه یابد. |
√ |
- |
- |