Omówienie projektu
Część sekcji Programowanie obiektowe ścieżki Dart w Coddy. Lekcja 101 z 110.
Wyzwanie
ŁatwyW tym rozdziale zbudujesz system zarządzania biblioteką, który łączy klasy, enkapsulację i wzorce projektowe w działającą aplikację.
Zacznijmy od przygotowania struktury projektu za pomocą prostej klasy Book — podstawy, na której będą opierać się wszystkie kolejne lekcje.
Utworzysz dwa pliki:
book.dart: Zdefiniuj klasęBookz trzema właściwościami:isbn(String),title(String) iauthor(String). Dodaj konstruktor, który inicjalizuje wszystkie trzy właściwości, i nadpisz metodętoString(), aby zwracała informacje o książce w formacie[isbn] title by author.main.dart: Zaimportuj plik z książką i utwórz dwie książki, aby sprawdzić, czy klasa działa poprawnie. Utwórz książkę o numerze ISBN978-0-13-468599-1, tytuleThe Pragmatic Programmeri autorzeDavid Thomas. Utwórz drugą książkę o numerze ISBN978-0-596-51774-8, tytuleJavaScript: The Good Partsi autorzeDouglas Crockford. Wyświetl obie książki (co spowoduje użycie metodytoString()).
Ta prosta struktura ustanawia schemat organizacji plików, którego będziesz używać w całym projekcie. W kolejnych lekcjach rozbudujesz go o klasy użytkowników, logikę wypożyczania i nie tylko!
Oczekiwany wynik:
[978-0-13-468599-1] The Pragmatic Programmer by David Thomas
[978-0-596-51774-8] JavaScript: The Good Parts by Douglas CrockfordSpróbuj swoich sił
import 'book.dart';
void main() {
// TODO: Utwórz książkę z numerem ISBN '978-0-13-468599-1', tytułem 'The Pragmatic Programmer' i autorem 'David Thomas'
// TODO: Utwórz drugą książkę z numerem ISBN '978-0-596-51774-8', tytułem 'JavaScript: The Good Parts' i autorem 'Douglas Crockford'
// TODO: Wypisz obie książki (zostanie użyta metoda toString())
}
Wszystkie lekcje w sekcji Programowanie obiektowe
1Podstawy OOP
Pliki zewnętrzneBiblioteki i importyWprowadzenie do OOPKlasy a obiektySłowo kluczowe thisMetodyZmienne instancjiPodstawy konstruktorówPowtórka – prosty kalkulator4Bezpieczeństwo wartości null
Wprowadzenie do bezpieczeństwa wartości nullTypy dopuszczające null i niedopuszczające nullOperatory ? i !Słowo kluczowe late a bezpieczeństwo wartości nullOperatory uwzględniające nullBezpieczeństwo wartości null w klasachPodsumowanie — system profili użytkowników7Klasy abstrakcyjne i interfejsy
Klasy abstrakcyjneMetody abstrakcyjneInterfejsy w DartInterfejsy niejawneImplementowanie a rozszerzanieWiele interfejsówPowtórka — kalkulator kształtów10Kolekcje i typy generyczne
Przegląd List, Set i MapKolekcje bezpieczne typowoKlasy generyczneMetody generyczneOgraniczenia typów generycznychIterable i IteratorPowtórka — generyczne przechowywanie danych13Zaawansowane koncepcje OOP
Kompozycja a dziedziczenieMetody rozszerzająceKlasy wywoływalneKlasy zapieczętowane (Dart 3)Rekordy (Dart 3)Wzorce i dopasowywanie (3.0)Typy wyliczeniowe z metodami16Projekt: Zarządzanie biblioteką
Omówienie projektuKlasy książek i użytkowników2Konstruktory w Dart
Konstruktor domyślnyKonstruktory nazwaneListy inicjalizująceKonstruktory stałeKonstruktory fabryczneKonstruktory przekierowującePodsumowanie — budowanie kształtów5Hermetyzacja
Elementy publiczne a prywatneKonwencja prefiksu _Prywatność na poziomie bibliotekiGettery i settery — szczegółowoUkrywanie informacjiPodsumowanie — dane uczniów8Domieszki
Wprowadzenie do domieszekTworzenie domieszekKorzystanie z wielu domieszekSłowo kluczowe on w domieszkachDomieszka a dziedziczenieDomieszka a interfejsPodsumowanie – system zwierząt11Metody specjalne
Nadpisanie toString()Nadpisanie hashCode i ==Interfejs ComparableMetoda call()Nadpisanie noSuchMethodPodsumowanie — własna kolekcja14Wzorce projektowe, część 1
Wprowadzenie do wzorców projektowychWzorzec SingletonWzorzec FactoryWzorzec ObserverWzorzec Strategy3Właściwości klas
Elementy instancji a elementy statycznePola final i constZmienne inicjalizowane z opóźnieniemMetody i pola statyczneGettery i setteryPowtórzenie – menedżer kont bankowych6Dziedziczenie
Podstawy dziedziczeniaSłowo kluczowe superPrzesłanianie metodAdnotacja @overrideSłowo kluczowe final dla klasKonstruktory i dziedziczeniePowtórzenie – hierarchia pracowników9Polimorfizm
Podstawy polimorfizmuPolimorfizm za pomocą interfejsówSprawdzanie typu w czasie działaniaOperatory is i asSłowo kluczowe covariantPodsumowanie — procesor płatnościPoćwicz samodzielnie: Kompilator Dart online