ההבדל בין הפשטה לאנקסולציה ההבדל בין

Anonim

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

-> ->

מה זה הפשטה?

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

-> ->

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

-> ->

מהו אנקפסולציה?

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

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

ההבדל בין הפשטה ו אנקפסולציה

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

  1. ההבדלים "הגדרה" של הפשטה ו אנקפסולציה - הפשטה היא מושג היסוד OOP אשר מדגיש על כל ההיבטים החיוניים של אובייקט על ידי הסתרת הפרטים לא רלוונטיים כדי להגביר את היעילות ולמנוע המורכבות. אנקפסולציה, לעומת זאת, הוא מנגנון מסתור נתונים אשר עוטף את הנתונים והמידע בתפזורת כדי להגביל את הגישה מהעולם החיצון.
  2. ההבדלים ב "פונקציונליות" של הפשטה ו אנקפסולציה - הפשטה היא מנגנון מסתור הנתונים אשר מדגיש רק את התכונות החיוניות כדי להפוך את תוכניות מורכבות פשוט יותר, ואילו אנקפסולציה, לעומת זאת, היא שיטת מחייב נתונים וקודים לישות אחת. הרעיון הוא להגן על פרטי היישום מגישה חיצונית.
  3. ההבדלים "יישום" של הפשטה ו אנקפסולציה - הפשטה מיושם באמצעות בכיתה מופשטים ממשק, תוך אנקפסולציה מיושם באמצעות מכני גישה. חמישה סוגים של מכפילים משמשים לתמצית נתונים: פרטי, ציבורי, פנימי, מוגן, פנימי מוגן.
  4. ההבדלים "קונספט" של הפשטה ו אנקפסולציה - הרעיון מאחורי הפשטה היא להתמקד במה ולא איך. אנקפסולציה מסתירה את המכניקה הפנימית של האופן שבו. לדוגמה, כאשר אתה נוהג במכונית, אתה יודע בדיוק מה עושה את דוושת הבלם אבל אתה לא יכול לדעת את כל המנגנון מאחורי זה כי הנתונים הוא encapsulated.
  5. ההבדלים "דוגמה" של הפשטה ו אנקפסולציה - בואו ניקח דוגמה של הטלפון החכם. אתה יודע מה זה עושה אבל אתה לא יכול לדעת איך זה עושה את מה שהיא עושה. אתה רק אכפת מסך התצוגה ואת לחצני לוח המקשים במקום לדאוג המעגל הפנימי שלה. כאן, הטלפון החכם הוא תקציר שבו הפרטים הפנימיים של היישום מקופלים.

הפשטה לעומת אנקפסולציה עם טבלת ההשוואה

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

סיכום

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