سلام دوستان
در مورد تفاوت وراثت در زبان java و c کی اطلاعات داره؟
لطفا کمک کنید .
سلام دوستان
در مورد تفاوت وراثت در زبان java و c کی اطلاعات داره؟
لطفا کمک کنید .
منظورتون سی پلاس پلاس هست دیگه!؟
1. در سی پلاس پلاس، وراثت چندگانه (مستقیمن) پشتیبانی می شه ولی در جاوا این مسئله رو نداریم ولی می شه از چند Interface چندگانه وراثت کرد.
2. در سی پلاس پلاس، چیزی به نام Interface که کاملن Abstract باشه نداریم ولی جاوا داره.
3. سی پلاس پلاسی انواع وراثت داره یعنی وراثت می تونه public، private و یا protected باشه ولی در جاوا وراثت فقط به صورت public امکانپذیر هست.
ولی سعی کنید سوالات درسیتون رو اینجا نپرسید و به جاش خودتون تحقیق کنید.
حرف شما درسته، این از خواص وراثته و جزو تفاوتها. من تصور کردم که منظور شما به ارث نرسیدن اون متدهاست بنابراین خواستم موضوع رو به این صورت اصلاح کنم که تمامی متدها به ارث میرسند و این تعاریف(publicو private و ...) مربوط میشه به حوزه دسترسی یعنی بنا به تعریف به برخی دسترسی داریم و به برخی خیر.
نه! فکر کنم منظورمو واضح بیان نکردم. من نوع ارث بری رو گفتم نه اینکه اجزای private به ارث نمی رسند یا اینکه private ها رو دسترسی نداریم.
ببینید! در سی پلاس پلاس خود ارث بری می تونه از نوع public، private یا protected باشه ولی در جاوا ارث بری همواره public هستش و بقیه رو پشتیبانی نمی کنه.
مثلن در سی پلاس پلاس شما می تونی بگی:
class Child : private Parent {
...
}
سلام
من عضو جدیدم
ببینید...این یکی از معجزات جاوا هست که وراثت چند گانه رو نداره(تا برنامه قره قورتی نشه)...بلکه interface داره
"پشتیبانی نمیکنه" نگین...چون یه نوعی ضعف به نظر میاد...در حالی که این قدرت مطلقی هست که جاوا در اختیار برنامه نویس قرار میده
جاوا اصول داره...هیچ وقت با سی پلاس پلاس مقایسه نکنین...یا با هر زبانه قره قورتی دیگه ای
اگه در مورد جاوا سوالی داشتین...مستقیم بپرسین...نه با مقایسه
اونوقت میفهمین فرق جاوا با دیگر زبانها چیه
دوست عزیز هیچ تکنولوژی مطلق نیست! لااقل به عنوان کسانی که در این رشته فعالیت میکنیم باید بدانیم که تفاوتها بین تکنولوژی ها و ابزارهای مختلف چیه و هر وقت که یکی از این تفاوت ها مزیت شد، به اون توجه کنیم. من با اینکه 6-7 ساله به صورت خاص روی جاوا کار میکنم، تا به حال به چشم "قره قورتی" به زبانهای دیگه نگاه نکردم و فکر میکنم که آدم عاقل به جای تعصب، به همه امکانات اطرافش به چشم فرصت نگاه میکنه حتی اگه این امکانات زبانهای برنامه نویسی باشه.
در ثانی مقایسه برای کسانی که به یکی از زبانها مسلط هستند و به یکی دیگه آشنا میتونه بسیار مفید باشه
یک بار و برای همیشه می خواهم چیزهای زیادی ندانم.فرزانگی نیز برای شناخت , محدودیت می آفریند .(پندها وپیکان ها – فردریش نیچه)
سلام، آره با Reflection میشه ولی در زمان اجرا نه در هنگام توسعه. ما در مورد تفاوتهای دوزبان صحبت میکردیم و تا اونجا که من میدونم Reflection مربوط به کار با اشیا در Run time و این خیلی به قابلیت ها و تفاوتهای دو زبان در وراثت مربوط نمیشه. Reflection یه API هست که به ما امکانات مختلفی میده اما صحبت از ساختار چیز دیگه ای هستش.
همونطور که عرض کردم به لحاظ مفهومی چندان فرقی ندارند. از طرفی ران تایم و کامپایل تایم هردو جزی از محیط جاوا هستند و در نتیجه از خصوصیات جاوا. پس reflection هم هرچند به شکلی نامتعارف اما واقعی در زمینه وراثت در جاوا موثره.و حتی میتونه ساختار کامپایل تایم رو تغیر بده. و این یعنی تاثیر در ساختار برنامه .البته این ها برای من فرقی نمیکنه.
موفق باشی.
یک بار و برای همیشه می خواهم چیزهای زیادی ندانم.فرزانگی نیز برای شناخت , محدودیت می آفریند .(پندها وپیکان ها – فردریش نیچه)
سلام
دوست عزیزمون آقا مهدی که میگن " Reflection در زمان اجرا نه در هنگام توسعه " باید بگم که اینطور نیست....چون debuger جاوا به کمک array reflection نوشته شده که class رو تکه تکه میکنه و آخرش ارایه میکنه و دوباره از اون آرایا عنصر میگیره و ادامه debug...پس کاملا run time میباشد....
شما میتوانید با کلاسهای reflector به هر نوع(private , public , protected , package) متود ، فیلد ، constructor ، class....دسترسی داشته باشید.
حتی کلاسهای member از اون کلاس...یا
کلاسهای nested از ائن کلاس....یا
کلاسهای Local از اون کلاس...یا
کلاسهای enunmes از اون کلاس
موفق باشید
سلام
ببینید...این کاملا غیر اصولی هست که یک کلاس بتونه از چند کلاس ارث ببره
اگه هر دو پدر متودی همنام داشته باشن...وقتی فرزند بخواد یکی از متود هاش رو مورد استفاده قرار بده...موقع فراخوانی متود...متود کدوم پدرش رو فراخوانی خواهد کرد...
قبول که این مشکل هم حل میشه...آیا این اصولی هست که هنگام برنامه نویسی مشکلی ناشی از غیره اصولی بودن یک زبان برنامه نویسی داشته باشیم که مجبور بشیم...غیر اصولی هم این مشکل رو حل کنیم...
آخرین بار که آمار تفاوت ها و امتیازات جاوا از ++C رو میدیدم...از وبلاگ یکی از متخصصین sun .... صد و یک دلیل همراه با کده یک برنامه کامل آورده بودن ...که جاوا بهتر از ++c هست و ++c از اصولی مناسبی برخوردار نیست
ضمنان...شما یک ابزار از ++c نام ببرید که قوی تر از ابزار جاوا باشه؟
من همین جا ابزارهایی از جاوا رو میگم که قوی تر از ابزارهای ++c هستند. >> همه ی ابزارهای جاوا قوی تر از ابزارهای هر زبانی هستند.
میتونین تحقیق کنین
یه سوال دیگه...یه دلیل منطقی بیارین برای ارث بری چند گانه؟
منتظر جوابتون هستم...!
موفق باشین
سلام دوست عزیز
باید به عرض شما برسونم که...
جاوا در واقع یک زبان برنامه نویسی نیست...جاوا یک علمه
اینطور که به نظر میاد...فعلا که مطلقه
درسته که scala میخواد جایگزین جاوا بشه...اما از اصول جاوا پیروی میکنه
جاوا نباشه...اصولش که هست
در مورد ++c هم مطلب نوشتم در همین تاپیک...خودتون بخونبن و به سوالم پاسخ بدین.
ضمنا...با وجود زبانهای برنامه نویسی قدری مثل جاوا ، ++c دیگه منسوخه....
و با وجود jsp یا ruby (محصولی از شرکت sun از سال1993 که به دلیل راحت طلبی و تنبلی ما ایرانی ها هنوز در کشور ما ناشناخته هست) asp هم دیگه منسوخه
به اونایی که در عالم .net سیر میکنن....پیشنها میکنم از دنیای کوچک .net بیان بیرون
در مورد ruby باید بدونین که...آینده ی وب هست...یک زبان اسکریپتی شیئ گرا...یعنی معجزه
موفق باشید
دوست من کسی نمیگه با این تکنیک نمیشه به اینا دسترسی داشت، صحبت سر معماری یه زبانه! شاید حالتهایی باشه که شما مجبور بشید از reflection استفاده کنید اما نمیشه وسط طراحی یه سیستم اومد و گفت من متد private رو با reflection صدا میزنم چون منطقی نیست، حرف من اینه که reflection وارد حوزه API میشه نه Structure! اینجا هم حوزه بحث صرفا راحع به structure هستش...
جاوا یک علم نیست! در بهترین حالت تکنولوژیه! علم تعریفی داره و شما نباید به همچین چیزی محدودش کنید!
در ضمن اصولا در علم چیزی مطلق نیست! چه برسه به زیر مجموعه هاش (اگه بخوای فلسفی نگاه کنی). صحبت سر جاوا که چنانه و چنینه هم اینطوریا نیست که اگه بود همه هرچی زبان و تکنولوژی تو دنیا هست رو ول میکردن میشستن با جاوا کار میکردن. بهتره بدونید که بخش بسیار بزرگی از علم نرم افزار وجود داره که موقع توسعه با همون فرترن یا کوبول یا ++C پیاده سازی میشه و Net. یا جاوا یا ruby اصلا جایی توش نداره...
در مورد وراثت چندگانه:
این نوع وراثت در شرایطی کاملن قابل توجیه و ممکن هست اونهم وراثت چندگاته از رفتارها هست. (Interface Inheritance) طبعن وراثت از دو تا کلاس Concrete به همون دلیلی که گفتید منطقی نیست اما یک شی می تونه از چند Interface به ارث ببره و اتفاقن بسیار هم کاربردیه. وراثت چندگانه یه این مدل خیلی هم کاراست. مثل یک دستگاه سه کاره که هم اسکنره هم پرینتر هم دستگاه کپی! یعنی داره از سه Interface به ارث می بره.
در مورد مقایسه جاوا و سی پلاس پلاس هم شما باید دیدتون رو باز تر کنید. چاوا از خیلی جهات از سی پلاس پلاس بهتره چون اشکالاتش رو بر طرف کرده اما اگه سی پلاس پلاس نبود چاوایی هم به وجود نمی اومد. همین امروزه کار هایی هست که فقط با سی پلاس پلاس می شه انجام داد. سی پلاس پلاس از دیر باز وجود داشته و ابزار های بسیار قوی ای هم براش وجود داره و ...
سلام
1_ بوجود آمدن جاوا هیچ ربطی به وجود ++c نداره...به دلیل مشکلات فراوانی که در برنامه نویسی برای serverهای sun با زبان ++c وجود داشت...آقای james gosling به حدی از ++c متنفر میشه که تصمیم به پیاده سازی پروژه جاوا میشه...تا INDEPENDENT بودن یک زبان رو به ارمغان بیاره...
ضمنا شما گفتین " همین امروزه کار هایی هست که فقط با سی پلاس پلاس می شه انجام داد "...!!! جای دیگه این حرف رو نزنین!!!...یا حداقل یه مثال بیارین تا بقیه برنامه نویسان دنیا هم از این قضیه مطلع بشن...!!!!...مخصوصا برنامه نویسان sun...!!!
موفق باشین
سلام
ببینید تعصب داشتن عیب نیست...آدم به هر چیزی که علاقه داره...طبیعی هست که تعصب داشته باشه
اما نه بیش از اندازه...من فقط دفاع کردم...آخه یه چیزایی میگن که...
ضمنا..جاوا برای گیم درست کردن و اینا نیست
اما میشه درست کرد..اما بچه ها میگن با ++c برنامه ای میشه نوشت که با جاوا نمیشه!!!!
میتونین بحث ها رو بخونین
موفق باشین
در مورد اول اینکه تصور نکنید فقط شما جاوا کارید و بقیه ازش خبری ندارند! لااقل من که از نسخه 1.2 دارم باهاش جلو میرم و این چیزایی که شما میگین رو هم بیشتر مربوط به business model میدونم تا علم!
در مورد مثال، میتونید یه کار خیلی ساده انجام بدید، برنامه ای بنویسید که عدد پی رو تا 100000 رقم محاسبه کنه، بیبنید با فرترن به کجا میرسید، با ++C چه نتیجه ای میگیرید و همینطور با جاوا یا ruby! برنامه های realtime هم مثال خوبیه، نمونه دیگش نرم افزارهایی هستش که کاربرد نظامی دارند. مثال زیاد میشه زد...
با این صحبت ها داریم از بحث اینجا فاصله میگیریم و من ترجیح میدم ادامه ندیم، اما اگه علاقه داشتید میتونیم یه forum برای همین بحث باز کنیم.
شما دارید بحث اصلی رو به حاشیه می برید. حرف هایی که می زنی غلط نیستند اما "بزرگ نمایی" شده اند. نمی دونم چند سال هست که کلمه جاوا رو شنیدین اما تمام مطالبی رو که می گی برخی دوستان قبلن مطالعه کردن، تجربه کردن، یاد گرفتن و حس می کنند ولی شما داری یه کمی نابخردی می کنی. علاقه به جاوا یا هر چیز دیگه ای بد نیست (من خودم بخشی از زندگیم رو مدیونشم) اما شما باید یک مهندس واقعی و انسانی با دید باز باشید! علاقه بیش از اندازه چشم ها رو می بنده!
شما باید جایگاه خودت رو بشناسی و این طور با دوستانت حرف نزنی که "شما اینو جای دیگه نگو"! مطالعه و تجربه برخی دوستان به اندازه ای هست که بدونن کجا چی بگن.
-اگر C++ نبود دنیای کامپیوتر و علم برنامه نویسی شاید به اینجا نمی رسید! چه برسه به جاوا! شما برید بیشتر کسب دانش کنید.
-فکر نمی کنم لزومی داشته باشه شما در مقابل تعدادی از دوستان با تجربه جاوا کار از جاوا دفاع کنید!
-جاوا بستر بسیار بزرگی از تکنولوژی ها و استاندارد هاست! (خیلی بزرگ) نه علم!
-نرم افزار هایی RealTime بسیار زیادی در کاربرد های مختلف هست که نوشتن اون ها با جاوا ریسک هستش.
-نوشتن یک درایور سخت افزاری با جاوا تقریبن اصلن عملی نیست!
-همین الان در بخش وب اینقدر زبان های توصیفی زیاد اومده که با چند کلیک web application درست می کنند! که مثلن دنبال جاوا رفتن برای یک web application برای یک فروشگاه اینترنتی دیوانگیه!
...
دوستان،
اولا سعی کنید با احترام با سایرین برخورد کنید، بخصوص که بسیاری از کاربران سایت را نمی شناسید و چه بسا از نظر سن و سال، تجربه، یا حتی دانش از شما یا دیگران بزرگتر باشند. بحث علمی با توهین فرق میکنه.
ثانیا، از موضوع تاپیک خارج نشید. موضوع تاپیک تفاوت در وراثت در جاوا و ++C هست، اما بحثی که من الان دارم می بینم، کل کل بی مورد درباره جاوا و سایر زبان ها ست.
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.
سلام
من از همه بچه ها معذرت میخوام....مخصوصا از cups_of_java از mehdi_m1360 از MIDOSE
خیلی خیلی بی ادبانه رفتار کردم...بگذارید به حساب تازه کار بودن و مشکلات وسختی هایی که این مدت با آنها دست به قریبان بودم ...
در اینجا بین همه بچه های این تاپیک اعلام میکنم...در مقابل این دوستان چیزی نیستم...این دوستان واقعا با سواد هستن...و باز هم از این دوستان عذر میخوام...از صاحب این سوال هم معذرت میخوام که باعث شدم بحث عوض بشه
امید وارم منو به عنوان دوست منو بپذیرین و ببخشین و در جمعتون منو راه بدین....
موفق باشید...از طرف یک تازه کار
چرا میتونه دینامیک باشه!شما میتونید در رفلکشن متدی رو روی شی صدا بزنید که تعریف در کد کامپایل نشده باشه.و در استثنای تولیدی طوری رفتار کنید که انگار اون متد وجود داره!
و از طرفی .در مورد ساختار و امکانات API نکات مختلفی رو باید مد نظر داشت . مخصوصا برای زبان هایی که روی یک پلت فرم نرم افزاری پیاده شدن مثل جاوا یعنی زبان و فریم ورک در هم آمیخته هستن یکی بدون دیگری نمیتون باشه . اما درمورد زبان هایی که مستقیما (در هر صورت با واسطه اسمبل و اپ کد ) روی سخت افزار اجرا میشند این وابستگی کمتر هست و در نتیجه زبان و مرز های ساختار زبانی مشخص تر هست. اینکه وراثت جند گانه و یگانه و برتری هاشون نسبت به هم چیه به نظر من همونطور که گفتم صرفا دید متفاوتی از حل مسئله مدیریت کد هاست . (ما Objective C رو هم داریم که زبان Native مک هست و از واسط ها استفاده میکنه!).
در مورد C و CPP هم دوستی گفتن منسوخ شده که واقعا کم لطفی و تا حد زیادی بی اطلاعی هست.به نظرش همین جاوا رو تو پلت فرم های مختلف سخت افزاری پیاده سازی میکنند؟و همین براوزری که داره باش کار میکنه؟ و نرم افزار های افیسش .لینوکس ویندوز ووووووووو.
یک بار و برای همیشه می خواهم چیزهای زیادی ندانم.فرزانگی نیز برای شناخت , محدودیت می آفریند .(پندها وپیکان ها – فردریش نیچه)
Reflection در جاوا همچین مکانیزمی رو نداره! می شه منظورتون رو با مثال بیان کنید؟چرا میتونه دینامیک باشه!شما میتونید در رفلکشن متدی رو روی شی صدا بزنید که تعریف در کد کامپایل نشده باشه.و در استثنای تولیدی طوری رفتار کنید که انگار اون متد وجود داره!
منطورتون رو از مدیریت کد ها متوجه نمی شم!؟ اینا موضوعات طراحی شی گرا هستند.اینکه وراثت جند گانه و یگانه و برتری هاشون نسبت به هم چیه به نظر من همونطور که گفتم صرفا دید متفاوتی از حل مسئله مدیریت کد هاست
Objective C چه ربطی به تفاوت های وراثت در جاوا و سی پلاس پلاس داره؟
1. بازم می گم: Reflection امکاناتی مثل افزودن یک متد پویا به ساختار یک کلاس جاوا رو نمی ده. با Reflection شما فقط می تونی ساختار ها رو در زمان اجرا پیمایش کنی. بخونی و فراخوانی کنی.
شما هر حرفی می زنید باید بر اساس سند و دلیل باشه که بتونید ازش دفاع کنید. فکر می کنم در این زمینه در مدیریت دانشتون دچار اشتباهی شدید.
2. عرض من این بود که object C اصلن ربطی به موضوع این بحث و سوال دوستمون نداشت.
سلام:
1-از توجهتون ممنون.
2-اینکه بنده در مدیریت دانشم اشتباه کنم که در احتمالش شکی نیست.
3-در مورد دلیل و مدرک بنده به اون پست اولای تاپیک خودتون استناد کردم که فرموده بودید برید خودتون جستجو کنید و سوالای ...اینجا مطرح نکنید. با این حال میتونید در این لینک با استثنایی که گفتم بیشتر اشنا بشید.
http://java.sun.com/j2se/1.4.2/docs/...Exception.html
4-در مورد ابجکتیو c به نظر بنده چون سوال این تاپیک تفاوت های وراثت در سی و جاوا بود و عده ای اصولا بحث رو به فرق سی پلاس پلاس و جاوا کشوندن و به نکته اصلی که اصولا سی زبانی شی گرا نیست که از وراثت پشتیبانی کنه رو مد نظر قرار ندادن در ادامه بنده سعی کردم بحث دوستان رو سط بدم. عده ای فرموده بودن وراثت چند گانه در جاوا با اینتر فیس ها ممکنه و در CPP با وراثت چند گانه مسقیم . بنده گفتم این صرفا نگاه متفاوت به مدیریت کد هاست. عده ای گفتن که cpp ابستراکت محظ نداره اما بد نیست به تمپلیت کلاس های cpp نگاه کنند. از طرفی ایا کلاس ها در جاوا همون هستنند که در جاوا هستنند .در جاوا شما دقیقا در اینترفیس ها در نقطه مقابل وراثت چند گانه مستقیم در CPP هستید که به عنوان فرق با این حدود مشخص میکنید . نظرتون در باره اینترفیس های مارکر چیه؟ و ربط رفلکشن و انونیشن و پردازنده ای بایت کد با معنا پیدا کردن این اینتر فیس ها .یا انونیشن ها با با رفلکش و اینکه امروز شما از انونش چقدر در ساختار کد هاتون استفاده میکنید (مثلا میتونید ماکرو های سی رو باشون شبیه سازی کنید!)یا ....
نگاه متفاوت به مدیریت کد ها : ببینید برنامه نویسی شی گرا لایه های اضافه ای رو روی کد ماشین برای رسیدن به تکامل زبان برنامه نویسی بنا میکنه . کمی که اشزاف برنامه نویس روی برنامه نویسی و رابطش با معماری کامپیوتر بیشتر بشه در قلب هر دستور زبان کامپایلر اینترپرتر و هر ابزار دیگه ای روح سطح پایین ابزار برنامه نویسیش رو میبینه . و اینکه چطور مثلا اینتر فیس ها در حافظه بار میشن و به کلاس های مختلف امکان ادقام و ارث بری چند گانه رو میدن. همینطور در مورد CPP و همه زبان ها . در نهایت تمام این قطعات کد به زبان ماشین که دستور العمل هایی روال گرا داره تبدیل میشن! این یعنی در هر زبان سطح بالایی یا سطح میانه شما دارید از امکاناتی که اون زبان یا در مورد جاوا یک پلت فرم برای مدیریت کد های بزرگ روی روال هایی که میتونن خیلی برای یک انسان پیچیده بشند کار میکنید.
5-تازگی ها در گیر دو پروژه جدید و نگهداری یکی از قدیمی ها هستم. متاسفانه پست هام هم تحت تاثیر کمی وقته.پس اگر کمو کاستی دیدید به بزرگی خودتون ببخشید.
آخرین ویرایش به وسیله mazdadoost : چهارشنبه 09 اردیبهشت 1388 در 11:57 صبح
یک بار و برای همیشه می خواهم چیزهای زیادی ندانم.فرزانگی نیز برای شناخت , محدودیت می آفریند .(پندها وپیکان ها – فردریش نیچه)
این یک کلاس عمومی Exception هست معرف این که متدی که با Reflection صدا کردیم exception داده! همین! Reflection مکانیزمی برای تغییر ساختار کلاس های جاوا به طور پویا نداره!!!
شما دید سطح پایین به شی گرایی دارید. دید یک طراح شی گرا (یا برنامه نویس شی گرا حتی) باید یک دید سطح بالا باشه تا بتونه ازش سالم و درست استفاده کنه. در شی گرایی این موارد اصلن اینطور به هم ربط داده نمی شن. ما از دید یک نویسنده کامپایلر به مسئله نگاه نمی کنیم!عده ای فرموده بودن وراثت چند گانه در جاوا با اینتر فیس ها ممکنه و در CPP با وراثت چند گانه مسقیم . بنده گفتم این صرفا نگاه متفاوت به مدیریت کد هاست.
ربط رفلکشن و انونیشن و پردازنده ای بایت کد با معنا پیدا کردن این اینتر فیس ها .یا انونیشن ها با با رفلکش و اینکه امروز شما از انونش چقدر در ساختار کد هاتون استفاده میکنید (مثلا میتونید ماکرو های سی رو باشون شبیه سازی کنید!)یا ....
نگاه متفاوت به مدیریت کد ها : ببینید برنامه نویسی شی گرا لایه های اضافه ای رو روی کد ماشین برای رسیدن به تکامل زبان برنامه نویسی بنا میکنه . کمی که اشزاف برنامه نویس روی برنامه نویسی و رابطش با معماری کامپیوتر بیشتر بشه در قلب هر دستور زبان کامپایلر اینترپرتر و هر ابزار دیگه ای روح سطح پایین ابزار برنامه نویسیش رو میبینه . و اینکه چطور مثلا اینتر فیس ها در حافظه بار میشن و به کلاس های مختلف امکان ادقام و ارث بری چند گانه رو میدن. همینطور در مورد CPP و همه زبان ها . در نهایت تمام این قطعات کد به زبان ماشین که دستور العمل هایی روال گرا داره تبدیل میشن! این یعنی در هر زبان سطح بالایی یا سطح میانه شما دارید از امکاناتی که اون زبان یا در مورد جاوا یک پلت فرم برای مدیریت کد های بزرگ روی روال هایی که میتونن خیلی برای یک انسان پیچیده بشند کار میکنید.
همون طور که گفتم فکر می کنم دید شما به شی گرایی، دید سطح بالایی بر اساس تجرید و بر اساس مفاهیم اولیه شی گرا نیست چون دیدتون به طور کلی و در سطح ساختار های زبانی درسته اما مال این بحث نیست.
خوب هربر نامه نویسی اشرافه خودش رو به مسائل داره. بایدی در کار نیست!شی گرایی هم در اصول خودش کامل و بالغ نیست. جواب من شاید چون کمتر کتابی و بیشتر تجربی بود به نظر نا متعارف بیاد. منتها هر چه کیسه تجربه آدم پر تر میشه چیز هایی رو میبینه که دیگران نمیتونن ببینن. در مورد مسایل تئوریک کلا دام هایی جلوی افراد وجود داره که میتونه تا همیشه درگیرشون کنه.همین پارادایم در مباحثی در باره کاربرد اینترفیس ها -کلاس ها و ابستراکت کلاس ه در جاوا رو در تاپیک دیگر داشتم.
یک بار و برای همیشه می خواهم چیزهای زیادی ندانم.فرزانگی نیز برای شناخت , محدودیت می آفریند .(پندها وپیکان ها – فردریش نیچه)
1-بنده نظرات خودم رو گفتم و هیچ اجباری نیست کسی بپذیرتشون.
2-فک کنم تنهاچیز کاملی که انسان تا حالا سخته همین شی گرایی باشه که شما فرمودین .چون طبق اصول مصنوعات ذهن رو به پیشرفت انسان به علت اینکه در زمان به تکامل میرسند و کامل شدنشون نسبیه همگی ناقص هم هستند. شی گرایی هم استثنا نیست و مشکلات خواص خودش رو داره.(فعلا اینو جستجو کنید oop pitfalls).
3-درباره دلیل و منطق هم پیشنهاد میکنم دوباره تاپیک رو مطالعه بفرمایید.
موفق باشید.
یک بار و برای همیشه می خواهم چیزهای زیادی ندانم.فرزانگی نیز برای شناخت , محدودیت می آفریند .(پندها وپیکان ها – فردریش نیچه)
این مسائل بر می گرده به استفاده نادرست و نا بجا از مفاهیم شی گرایی نه ناقص بودن یا مشکلات اون!
شما نمی تونید بگید تبر وسیله ناقصیه چون می شه باهاش سر یک آدم رو شکست! بلکه از تبر باید استفاده درست بشه (مثل تکه تکه کردن تنه شکسته درختان)
هر تکنولوژی ای رو می شه درست استفاده کرد می شه افراط و تفریط کرد!
آخرین ویرایش به وسیله cups_of_java : یک شنبه 20 اردیبهشت 1388 در 00:00 صبح
با شما در زمینه استفاده نابجا از ابزار موافقم . منتها چنانچه مایل باشید و وقت داشته باشید مایلم تویه تاپیک جداگانه درباره ویژه گی های شی گرایی در جاوا و حتی کلی تر و مشکلاتش به بحث بشینیم.
موفق باشید.
یک بار و برای همیشه می خواهم چیزهای زیادی ندانم.فرزانگی نیز برای شناخت , محدودیت می آفریند .(پندها وپیکان ها – فردریش نیچه)
خیلی خوبه! تاپیک جالبی می تونه از آب در بیاد. فقط:
۱. دید دوستان باید در برنامه نویسی سطح بالا (نه زبان ماشین و performance و ...) باشه و معطوف بشه به شی گرایی نه مساپل دیگه! یعنی حوزه مسله مورد بحث روشن باشه.
۲. باز اینکه تصمیم بگیریم می خوایم از فلسفه شی گرایی به طور کلی و جدا از زبان حرف بزنیم یا امکانات شی گرایی پیاده سازی شده در جاوا! باز این دو تا دید مختلف به موضوع مورد بحث هستش!