פונקציונליות חיפוש
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Dart של Coddy. שיעור 104 מתוך 110.
אתגר
קלבשיעור הקודם בנית מחלקה Library עם פונקציונליות של השאלת ספרים והחזרתם. עכשיו נוסיף יכולות חיפוש כדי שמשתמשים יוכלו למצוא ספרים באוסף הספרייה.
תשדרג את המחלקה Library שלך עם שלוש שיטות חיפוש חדשות שיעזרו למשתמשים לגלות ספרים:
book.dart: השאר את המחלקה הקיימתBookללא שינוי.user.dart: השאר את המחלקה הקיימתUserללא שינוי.library.dart: הוסף למחלקהLibraryשלך שלוש שיטות חיפוש:searchByTitle(String query)- מחזירהList<Book>שמכיל את כל הספרים שהכותרת שלהם מכילה את מחרוזת השאילתה (ללא תלות באותיות גדולות וקטנות)searchByAuthor(String query)- מחזירהList<Book>שמכיל את כל הספרים ששם המחבר שלהם מכיל את מחרוזת השאילתה (ללא תלות באותיות גדולות וקטנות)getAvailableBooks()- מחזירהList<Book>שמכיל רק ספרים שזמינים כרגע להשאלה
main.dart: הדגם את פונקציונליות החיפוש. צורLibraryוהוסף ארבעה ספרים:978-0-13-468599-1,The Pragmatic Programmer,David Thomas978-0-596-51774-8,JavaScript: The Good Parts,Douglas Crockford978-0-13-235088-4,Clean Code,Robert Martin978-0-20-161622-4,The Pragmatic Programmer,Andrew Hunt
U001,Alice) והשאל לו את הספר הראשון. לאחר מכן:- חפש ספרים שהכותרת שלהם מכילה את
pragmaticוהדפסTitle search 'pragmatic': X foundכאשר X הוא מספר התוצאות - חפש ספרים מאת מחבר ששם משפחתו מכיל את
davidוהדפסAuthor search 'david': X found - קבל את הספרים הזמינים והדפס
Available books: X - הדפס כל ספר זמין בשורה משלו
הפלט הצפוי:
U001 borrowed "The Pragmatic Programmer"
Title search 'pragmatic': 2 found
Author search 'david': 1 found
Available books: 3
[978-0-596-51774-8] JavaScript: The Good Parts by Douglas Crockford
[978-0-13-235088-4] Clean Code by Robert Martin
[978-0-20-161622-4] The Pragmatic Programmer by Andrew Huntנסו בעצמכם
import 'book.dart';
import 'user.dart';
import 'library.dart';
void main() {
// צור Library
Library library = Library();
// TODO: הוסף ארבעה ספרים לספרייה:
// 1. 978-0-13-468599-1, The Pragmatic Programmer, David Thomas
// 2. 978-0-596-51774-8, JavaScript: The Good Parts, Douglas Crockford
// 3. 978-0-13-235088-4, Clean Code, Robert Martin
// 4. 978-0-20-161622-4, The Pragmatic Programmer, Andrew Hunt
// TODO: רשום משתמש (U001, Alice)
// TODO: דאג שהמשתמש ישאל את הספר הראשון
// TODO: חפש ספרים שבכותרתם מופיע 'pragmatic'
// הדפס: Title search 'pragmatic': X נמצאו
// TODO: חפש ספרים מאת 'david'
// הדפס: Author search 'david': X נמצאו
// TODO: קבל את הספרים הזמינים והדפס: Available books: X
// TODO: הדפס כל ספר זמין בשורה נפרדת
}
כל השיעורים ביחידה תכנות מונחה עצמים
1יסודות התכנות מונחה העצמים
קבצים חיצונייםספריות וייבואמבוא לתכנות מונחה עצמיםמחלקות לעומת אובייקטיםמילת המפתח thisמתודותמשתני מופעיסודות הבנאיחזרה: מחשבון פשוט4בטיחות מפני ערכי null
מבוא לבטיחות מפני ערכי nullניתן להקצאה ל-null לעומת לא ניתן להקצאה ל-nullהאופרטורים ? ו-!מילת המפתח Late ובטיחות מפני ערכי nullאופרטורים מודעי nullבטיחות מפני ערכי null במחלקותסיכום – מערכת פרופילי משתמשים7מחלקות מופשטות וממשקים
מחלקות מופשטותמתודות מופשטותממשקים ב-Dartממשקים משתמעיםמימוש לעומת הורשהממשקים מרוביםחזרה – מחשבון צורות10אוספים וגנריות
סקירה כללית של List, Set ו-Mapאוספים בטוחים מבחינת טיפוסיםמחלקות גנריותמתודות גנריותאילוצים גנרייםIterable ו-Iteratorסיכום – אחסון גנרי13מושגי OOP מתקדמים
הרכבה לעומת הורשהמתודות הרחבהמחלקות קריאותמחלקות אטומות (Dart 3)רשומות (Dart 3)תבניות והתאמה (3.0)טיפוסים מונים עם מתודות16פרויקט: ניהול ספרייה
סקירת הפרויקטמחלקות ספר ומשתמש2בנאים ב-Dart
בנאי ברירת מחדלבנאים בעלי שםרשימות אתחולבנאים קבועיםבנאי Factoryבנאים מפניםסיכום - בונה צורות5כימוס
חברים ציבוריים לעומת פרטייםמוסכמת הקידומת _פרטיות ברמת הספרייההעמקה ב-getters וב-settersהסתרת מידעסיכום – רשומות תלמידים8מיקסינים
מבוא למיקסיניםיצירת מיקסיניםשימוש במספר מיקסיניםמילת המפתח on במיקסיניםמיקסינים לעומת ירושהמיקסינים לעומת ממשקסיכום – מערכת בעלי החיים3מאפייני מחלקה
איברי מופע לעומת איברים סטטייםשדות final ו-constמשתני lateמתודות ושדות סטטייםGetters ו-Settersסיכום – מנהל חשבונות בנק6ירושה
ירושה בסיסיתמילת המפתח superדריסת מתודותהאנוטציה @overrideמילת המפתח final למחלקהבנאים וירושהסיכום – היררכיית עובדים9פולימורפיזם
יסודות הפולימורפיזםפולימורפיזם באמצעות ממשקיםבדיקת טיפוסים בזמן ריצההאופרטורים is ו-asמילת המפתח קווריאנטיסיכום — מעבד תשלומים12תכנות מונחה עצמים אסינכרוני
Future-ים ו-async/awaitיסודות ה-Streamsבקרי Streamsבנאים אסינכרונייםאסינכרוניות במתודות של מחלקהסיכום - אחזור נתוניםתרגלו בעצמכם: קומפיילר Dart אונליין