Yönetici Arayüzü
Coddy'nin Dart Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 105 / 110.
Görev
KolayÖnceki derste, Library sınıfınıza arama işlevselliği eklediniz. Şimdi, ayrıcalıklı kullanıcıların kütüphanenin envanterini yönetmesine — yeni kitaplar eklemesine ve mevcut kitapları kaldırmasına — olanak tanıyan bir yönetici arayüzü oluşturalım.
Yeni bir Admin sınıfı tanıtacak ve Library sınıfınızı yönetim yetenekleriyle geliştireceksiniz:
book.dart: MevcutBooksınıfınızı değiştirmeden koruyun.user.dart: MevcutUsersınıfınızı değiştirmeden koruyun.admin.dart: Kütüphane yöneticilerini temsil eden yeni birAdminsınıfı oluşturun. Bir yöneticinin birid(String) ve birname(String) değeri vardır.toString()metodunu,Admin [id]: namedöndürecek şekilde geçersiz kılın.library.dart:Librarysınıfınıza yönetim işlevselliği ekleyin:- Kayıtlı yöneticileri depolamak için bir liste ekleyin
registerAdmin(Admin admin)- bir yöneticiyi kütüphaneye ekleraddBookAsAdmin(String adminId, Book book)- yönetici mevcutsa kitabı ekler veadminId added "title"yazdırır. Yönetici mevcut değilseUnauthorizedyazdırın.removeBook(String adminId, String isbn)- yönetici ve kitap mevcutsa kitabı kütüphaneden kaldırır veadminId removed "title"yazdırır. Yönetici mevcut değilseUnauthorizedyazdırın. Kitap mevcut değilseBook not foundyazdırın.getBookCount()- kütüphanedeki toplam kitap sayısını döndürür
main.dart: Yönetici arayüzünü gösterin. BirLibraryoluşturun ve bir yönetici (A001,Sarah Admin) kaydedin. Üç kitap eklemek için yöneticiyi kullanın: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 Martin
Total books: Xolarak yazdırın. Ardından, kayıtlı olmayan bir yönetici kimliği olanA999ile bir kitap eklemeyi deneyin. İkinci kitabı kayıtlı yöneticiyi kullanarak kaldırın. Son kitap sayısını yazdırın.
Beklenen çıktı:
A001 added "The Pragmatic Programmer"
A001 added "JavaScript: The Good Parts"
A001 added "Clean Code"
Total books: 3
Unauthorized
A001 removed "JavaScript: The Good Parts"
Total books: 2Kendin dene
import 'book.dart';
import 'user.dart';
import 'library.dart';
import 'admin.dart';
void main() {
// TODO: Bir Kütüphane oluşturun
// TODO: Bir yönetici oluşturun ve kaydedin (A001, Sarah Admin)
// TODO: Yöneticiyi kullanarak üç kitap ekleyin:
// - 978-0-13-468599-1, The Pragmatic Programmer, David Thomas
// - 978-0-596-51774-8, JavaScript: The Good Parts, Douglas Crockford
// - 978-0-13-235088-4, Clean Code, Robert Martin
// TODO: Kitap sayısını "Total books: X" şeklinde yazdırın
// TODO: Kayıtlı olmayan bir yönetici kimliği (A999) ile kitap eklemeyi deneyin
// TODO: Kayıtlı yöneticiyi kullanarak ikinci kitabı (978-0-596-51774-8) silin
// TODO: Nihai kitap sayısını yazdırın
}
Nesne Yönelimli Programlama bölümündeki tüm dersler
1Nesne Tabanlı Programlamanın Temelleri
Harici DosyalarKütüphaneler ve İçe AktarmalarOOP'ye GirişSınıflar ve Nesnelerthis Anahtar SözcüğüMetotlarÖrnek DeğişkenleriYapıcıların TemelleriTekrar - Basit Hesap Makinesi4Null Güvenliği
Null Güvenliğine GirişNullable ve Non-Nullable? ve ! OperatörleriLate Anahtar Sözcüğü ve Null GüvenliğiNull-Aware OperatörlerSınıflarda Null GüvenliğiTekrar - Kullanıcı Profili Sistemi7Soyut Sınıflar ve Arayüzler
Soyut SınıflarSoyut MetotlarDart'ta ArayüzlerÖrtük ArayüzlerUygulamak ve GenişletmekBirden Çok ArayüzTekrar - Şekil Hesaplayıcı10Koleksiyonlar ve Generics
List, Set, Map Genel BakışTür Güvenli KoleksiyonlarGeneric SınıflarGeneric MetotlarGeneric KısıtlamalarIterable ve IteratorTekrar - Generic Depolama13İleri Düzey OOP Kavramları
Kompozisyon ve KalıtımGenişletme MetotlarıÇağrılabilir SınıflarMühürlü Sınıflar (Dart 3)Kayıtlar (Dart 3)Desenler ve Eşleştirme (3.0)Metot İçeren Enum'lar16Proje: Kütüphane Yönetimi
Projeye Genel BakışKitap ve Kullanıcı Sınıfları2Dart'ta Yapıcılar
Varsayılan YapıcıAdlandırılmış YapıcılarBaşlatıcı ListeleriSabit YapıcılarFabrika YapıcılarıYönlendiren YapıcılarÖzet - Şekil Oluşturucu5Kapsülleme
Public ve Private Üyeler_ Ön Ek KuralıKütüphane Düzeyinde GizlilikGetter ve Setter DerinliğiBilgi GizlemeTekrar - Öğrenci Kayıtları8Mixin'ler
Mixin'lere GirişMixin OluşturmaBirden Çok Mixin KullanımıMixin'lerde on Anahtar SözcüğüMixin ve Kalıtım KarşılaştırmasıMixin ve Arayüz KarşılaştırmasıÖzet - Hayvan Sistemi11Özel Metotlar
toString() Geçersiz KılmahashCode & == Geçersiz KılmaComparable Arayüzücall() MetodunoSuchMethod Geçersiz KılmaÖzet - Özel Koleksiyon14Tasarım Desenleri Bölüm 1
Tasarım Desenlerine GirişSingleton DeseniFactory DeseniObserver DeseniStrategy Deseni3Sınıf Özellikleri
Örnek ve Static ÜyelerFinal ve Const AlanlarLate DeğişkenlerStatic Metotlar ve AlanlarGetter ve Setter'larÖzet - Banka Hesabı Yöneticisi6Kalıtım
Temel Kalıtımsuper Anahtar SözcüğüMetot Geçersiz Kılma@override Açıklamasıfinal Sınıf Anahtar SözcüğüKurucular ve KalıtımÖzet - Çalışan Hiyerarşisi9Çok Biçimlilik
Çok Biçimlilik TemelleriArayüzler Yoluyla Çok BiçimlilikÇalışma Zamanı Tür Denetimiis ve as OperatörleriCovariant Anahtar KelimesiTekrar - Ödeme İşlemcisi12Asenkron OOP
Future'ler ve async/awaitStream TemelleriStream DenetleyicileriAsenkron YapıcılarSınıf Metotlarında AsenkronlukÖzet - Veri Getirici15Tasarım Desenleri Bölüm 2
Komut DeseniAdaptör DeseniDekoratör DeseniŞablon Metot DeseniDurum DeseniBileşik DesenDepo DeseniKendi başına pratik yap: Online Dart derleyicisi