design patterns - עמוד 2 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

design patterns


kutomer

Recommended Posts

query זה שאילתא שאני מריץ על עץ (אינדקס) שאני יוצר בעצמי - כל עלה בעץ מכיל רשימה של קישורים מסוגים שונים.

ישנם סוגים שונים של שאילתאות - למשל שאילתא שאני בונה בregex ושאילתות מורכבות יותר שאני יכול לעשות עם רשימת תנאים.

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

בתאכלס, רכיב שאני אכתוב ע"מ לעטוף את זה, אז אפשר להגיד רק אני.

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

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

וכן נראה לי שאני אחזיר טיפוס של results וזהו ויוסיף לו פשוט פונקציה שתחזיר באיזה מהתוצאות להשתמש.

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

די מפתיע האמת שC# בכלל נותנת לך להחזיר טיפוס שונה, זה no no רציני שאתה מתעסק עם static typing .

עד כמה שאני יודע java ו C++ לא יתנו לך.

השאלה היא מה אתה עושה עם הערך מיד כשהוא חוזר, כלומר מה הערך עושה יודע לעשות ולא איך הוא ממומש.

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

http://developer.qt.nokia.com/doc/qt-4.8/qvariant.html

אם אתה עושה את אותם פעולות ב80% מהמקרים אתה רוצה לבנות

interface (ואני מתכוון interface אמיתי, לא מעטפת).

אם יש לך כזה קקה:



result = Query.execute()


if type(result) is ComplexQuery:
doSomething(result)
else:
doSomethingCompletelyDifferent(result)

אתה בבעיה, כי יש לך 2 פעולות שונות לחלוטין שבמקרה חולקות אותו שם. תשקול לעשות refactor

לכל העניין. אולי להפריד את exec מ query ואז ב doSomething תוכל לבחור אובייקט exec מתאים

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

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

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

עצמה, אתה תמיד יכול לעשות refactor. ותאמין לי למדתי את זה בדרך הקשה :).

כי זה בתכלס מה ש OOP קונה לך (בתאוריה). החופש לעשות טעויות מקומיות encapsulation AKA

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

ארכיון

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

×
  • צור חדש...