לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #2  
ישן 14-12-2007, 22:36
צלמית המשתמש של Humbug
  משתמש זכר Humbug Humbug אינו מחובר  
אדמין לשעבר
 
חבר מתאריך: 25.10.01
הודעות: 20,292
בתגובה להודעה מספר 1 שנכתבה על ידי Boba Smith שמתחילה ב "תכנות מונחה עצמים אה? :)"

יש כמה תשובות לשאלה שלך, אני אענה מכיוון אחד.

בפרויקט תוכנה תעשייתי מושקעות שנות אדם בקידוד. ישנם פרויקטים (כמו חלונות לדוגמא) שנושקים
לעשרות אלפי שנות אדם. הכוונה היא שהמון אנשים עבדו במשך שנים לייצר את הקוד הזה.
כשמישהו בא לפתור בעיה כלשהי, הוא יעדיף תמיד לקחת חלקים מן המוכן - ולכתוב רק את מה שהכרחי.
כך לדוגמא, כשאתה בא לפתח היום תוכנה בחלונות.. לא תעלה על הדעת אפילו לפתח פרוטוקול TCP/IP
בעצמך, שכן אתה מקבל את זה במתנה ממערכת ההפעלה.
חבילות התוכנה האלו נקראות ספריות או מודולים. עכשיו תשאל את עצמך - אוקי.. אבל גם בתכנות פרוצדורלי
אני יכול לייצר קבצי LIB ולהפיץ אותם לכל המעוניין.. כאן נכנסת העובדה שמי שכותבים תוכנה - הם בני אדם.

בני אדם חושבים כברירת מחדל באובייקטים. כשאנחנו באים לנתח בעיה/מערכת, אנחנו מראש חושבים על
הישויות במערכת. לדוגמא, קופה רושמת. ישנם מוצרים, ישנה הקופה, ישנה מגרת הכסף, ישנו המוכר, ישנה החשבונית וכו'..
ברגע שאתה מתחיל לחשוב בצורה כזאת, אתה יכול לתת מענה לכל אחד מהם בנפרד. כך לדוגמא, אם פיתוח של קופה כזו יכול לקחת מספר שנות אדם - אנחנו נעסיק מספר אנשים כאשר כל אחד מהם יפתח
חלק נפרד.
כך לדוגמא, מישהו אחד ייצר משהו שמייצג את הצד של המוכר. ככל הנראה המדובר יהיה בממשק משתמש (מקלדת לדוגמא) שבו המוכר יוכל להקליד את הסכום. מישהו אחר יפתח ישות שנקראת מוצר.
יש קטלוג מוצרים, לכל מוצר יש מאפיינים. כל מוצר ניתן לגרוע מהקטלוג ברגע שהוא נמכר.
וכך אתה מבצע חלוקה הגיונית יותר של האפליקציה.

אבל... לא כל הנוצץ זהב. לפיתוח אובייקטלי יש חסרונות, והבולט שבהם הוא התקורה שבקוד הניהול הנוסף של האובייקטים. כך לדוגמא - פעולות שבתכנות פרוצדורלי ניתן לעשות בלי זכרון, בתכנות אובייקטלי יצרכו זכרון בשביל לשמור את הInstances של האובייקט. בנוסף, ישנן תקורות בקוד המקור.
ברגע שאנחנו מפרידים את הבעיה לישויות - יכול להווצר מצב שאותה פעולה מתבצעת גם בישות אחת
וגם בישות שניה. לזה גם יש כמובן פתרונות. ישנם מצבים בהם פעולות שיכולת לבצע ע"י מניפולציה
לא יתבצעו כך. לדוגמא, אוביקט שמייצג מעגל. הוא יודע לתת לך את ההיקף של המעגל ואת השטח שלו.
מאידך, אם תרצה לחשב נפח של כדור - תצטרך לקחת אחד מאלו ולחלק אותו בפאי ובמקדמים המתאימים בשביל לקבל את הרדיוס - היות וזה לא נחשף החוצה באובייקט..

התשובה שלי מאוד מנסה לפשט את הבעיה ומסבירה את הבסיס של הבסיס. אני ממליץ לך לקרוא עוד באינטרנט. חפש OOP בwikipedia ואני מניח שתמצא תובנות מקצועיות יותר.
_____________________________________
דורון

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 10:21

הדף נוצר ב 0.04 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2025 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר