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

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



  #1  
ישן 23-03-2005, 09:42
צלמית המשתמש של fat fish
  fat fish fat fish אינו מחובר  
 
חבר מתאריך: 20.06.03
הודעות: 5,616
תכנות מוכוון עצמים - Object Oriented Programming

לאור שאלות רבות שצצות לאחרונה על מה זה תכנות OO, ומה זה אובייקט (ולמה בכלל צריך את זה),
הנה חלק ממבוא למדריך שהיה אמור להכתב בעבר עבור הפורום ומעולם לא הסתיים עקב מחסור בזמן.
(נכתב במקור עבור ++C, אבל מסביר את העקרונות)

תכנות מונחה עצמים – מבוא

מהוא תכנות מבני?

מערכות תכנה הינן מסובכות מטבען. אלמנטי הסיבוך:
  • סיבוך במרחב הבעיה.
  • הקושי בתהליך הפיתוח.
  • מספר גדול של שורות קוד – קושי בהבנה.
  • דרישות משתנות במהלך הפיתוח.
כדי להתגבר על אלמנטי הסיבוך משתמשים ב- decomposition – "חלק ומשול".
מחלקים את המערכת לחלקים יותר ויותר קטנים. כל חלק ניתן לשליטה והבנה קלה יותר.

הגישה המסורתית – פירוק אלגוריתמי
  • הגישה לפירוק הנה לפי האלגוריתם.
  • כל מודול במערכת מביע צעד עיקרי בתהליך הכולל.
  • חלוקת המערכת לאלמנטים פונקציונלים.
  • תת-התוכניות מהוות את אבני הבניה.
  • שבירת הסיבוכיות על ידי פירוק בעיה גדולה לצעדים קטנים יותר.
פירוק מונחה עצמים – Object Oriented

מזהים אובייקטים של הבעיה, הנגזרים ישירות מאוצר המלים של הבעיה.
  • מגדירים את התכונות של האובייקטים.
  • מגדירים את הפעולות (Methods) של האובייקטים.
"העולם" – קבוצת גופים אוטונומיים משתפי פעולה לביצוע התנהגות ברמת תיאור גבוהה
יותר. פתרון הבעיה הינו סדרת קריאות לפעולות של האובייקטים.
החלוקה מבוססת על אובייקטים ולא על אלגוריתם ונקראת לכן – Object Oriented Decomposition.
  • פירוק אלגוריתמי – מציין את סדר האירועים.
  • פירוק OO – מדגיש את הישויות הפועלות.
יתרונות פירוק OO
  • שימוש חוזר (re-use) של גורמים משותפים.
  • קל לשינויים ולהתפתחות.
  • עוזר להתגבר על הסיבוכיות האינהרנטית של התוכנה בעזרת בחירה נבונה של הפרדת נושאים במרחב מצבים גדול.
אבסטרקציה (הפשטה)

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


עצם Object


לעצם שלושה אפיונים:
  • זהות
  • מצב
  • התנהגות
זהות – שם האובייקט
מצב – מורכב מהתכונות (ערכים סטטיים) של האובייקט והערכים העכשוויים (ערכים דינאמיים)
של התכונות.
התנהגות – דרכה ניתן לשנות את המצב.


עצם תוכנה:
המצב נשמר במשתנים
ההתנהגות ממומשת בפעולות (Methods)
עצם, הנו צרוף תוכנה של זהות, משתנים ופעולות המתייחסות אליהם.

ייצוג ויזואלי של אובייקט תוכנה:
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה


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


הסתרה:
אין צורך לדעת איך ממומש האובייקט, אלא רק אילו פעולות יש להפעיל. לכן, פרטי מימוש יכולים
להשתנות מבלי להשפיע על חלקים אחרים במערכת.


נגישות:
לאובייקט יש שליטה מלאה על הנגישות של אובייקטים אחרים למשתנים ולפעולות
שלו (public, private).

יתרון הכימוס (Encapsulation):
  • מדולריות – ניתן לכתוב ולתחזק בנפרד את קוד המקור לאובייקטים שונים.
  • הסתרת מידע – הקשר לאובייקט הינו דרך הממשק הציבורי שלו. האובייקט מחזיק
    אינפורמציה פרטית אשר ניתנת לשינוי מבלי להשפיע על האובייקטים התלויים בו.
מחלקה (Class)



ב-OO, ניתן לאמר כי המופע (instance) של מחלקה (class) הינו אובייקט.

מחלקה מייצגת קבוצת אובייקטים שלהם משתני מצב משותפים והתנהגות משותפת. המחלקה
משמשת ליצירת האובייקטים.

כל האובייקטים של מחלקה הינם בעלי אותם כללי התנהגות, ולכולם אותם משתנים אם כי המצב
של המשתנים עשוי להיות בעל ערכים שונים.

כמו כן, כל אובייקט צורך מקום (זיכרון).


ישנן שתי דרכים לראות מחלקה:
  • ממשק (interface) – המראה החיצוני של המחלקה המדגיש את האבסטרקציה שלה ומסתיר
    את הפרטים של המימוש.
  • מימוש (implementation) – הצד הפנימי של המחלקה, המבנה ופרטי המימוש של הפעולות.

עד כאן נגיעה מאוד קטנה במבוא.....
אם יש שאלות נוספות על תכנות מוכוון (מונחה) עצמים - נשמח להשיב,
_____________________________________
[ זיו ]
[ fat fish ]


נערך לאחרונה ע"י fat fish בתאריך 24-03-2005 בשעה 16:13.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

הדף נוצר ב 0.06 שניות עם 10 שאילתות

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

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