האתר הישראלי להנדסת תכנה

דף ראשי | מפת האתר | רשימת מושגים | מקורות נוספים | אודות
משפחות יישומים בחן את עצמך

דפוסי תכן

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

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

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

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

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

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

לא נרחיב בנושא זה כאן. תחום דפוסי התכן הוא שטח נרחב מאוד בהנדסת תכנה כיום, וכבר חרג מסדר הגודל של הנושאים באתר זה. נוסיף עוד שכיום אף קיימים דפוסי תכן מתמחים: ישנם דפוסים מיוחדים לפלטפורמות פיתוח (דפוסי J2EE של Java), דפוסים למערכות תקשורת (ACE) ואחרים.

משפחות יישומים לתחילת הדף בחן את עצמך
©איתן 2003. כל הזכויות שמורות למערכת המידע איתן