class "דינאמי" ב JAVA - עמוד 2 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

class "דינאמי" ב JAVA


lompy

Recommended Posts

שוב ממש ממליץ לקרוא על זה פה:

http://www.omg.org/cgi-bin/doc?omg/03-06-01

זה PDF אז תוריד את זה עדיף, מאשר לראות בדפדפן

מה שכן

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

FINAL STATE MACHINE

זה אמור לעזור לך מאוד!

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

הרעיון שאני כנראה רודף הוא קריאה של המבנה ב UML שזה מעיין XML של UMI

ואז להכניס את זה לHASH SET ב JAVA ולהמיר את הקוד

אני לא בטוח עד כמה זה קשור אליך,

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

קישור לתוכן
שתף באתרים אחרים

צריך להבדיל בין לכתוב ב- java תוכנית שיוצרת class של Java, לבין לכתוב ב- Java תוכנית שיוצרת Class של שפה משלכם.

עד כמה שידוע לי, java לא מאפשרת ליצור class חדש לגמרי, אלא מאפשרת (בעזרת proxy) ליצור משהו שמתנהג כמו class חדש, אבל בעצם ממומש ע"י זה שהוא מתלבש על קריאות לפונקציות (אגב, המנגנון הזה די איטי).

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

אם רוצים להשתכלל אפשר להוסיף גם חוקי validation.

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

מה שיוצא אתה בעצם כותב ב- java קלאס של שפה אחרת...

קישור לתוכן
שתף באתרים אחרים

הרעיון שאני מדבר עליו (אם היית מקדיש איזה דקה של רפרוף) מדבר על קבלת אוטומט המתאר תוכנית.

התוכנית שלי ב JAVA אמורה לקרוא את זה ו"להבין" את זה, ואז לבנות את המבנה בזכרון.

משם אני לוקח את זה הלאה לבנית המבנה בצורה כללית שמתאימה לכל שפה, ואז אני אמור לקבל קובץ המיצג מבנה של שפת תכנות קיימת כגון C# או JAVA ובהתאם בונה להם קוד מקור שמשתמש במבנה הנתונים הזה

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

קישור לתוכן
שתף באתרים אחרים

OMG מדבר על זה שהקלט הוא לא אוטומט, אלא מודל בשפה כמו UML, והפלט בעצם הוא תוכנית בשפה אחרת (למשל ג'אוה).

כלים כאלה כבר קיימים בסביבות עבודה מתקדמות. (נמצא למשל ב- Visual Studio 2005 Architect).

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

זאת צורת עבודה של plugins, וזה ממש לא ייחודי ל- OMG - אפשר לממש את זה בכל שפת תכנות שמאפשרת טעינה דינאמית של ספריות (למרות שזה הרבה יותר קל בשפה שיש בה reflection).

למעשה כבר בגרסאות הראשונות של דלפי היה אפשר לכתוב קוד בדלפי שנכנס לתוך סביבת העבודה ומרחיב אותה. כנ"ל ב- eclipse.

מה שכן

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

FINAL STATE MACHINE

זה אמור לעזור לך מאוד

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

כיוון שבמקרה שדובר בו כאן אין ממש שפת תכנות אלא רק תכנון של מבני נתונים פשוטים, הרבה יותר קל להשתמש בפורמט קיים, למשל XML, כדי להשתמש בו לתיאור ה- classes.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...