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, yetkili kullanıcıların kütüphane envanterini yönetmesine (yeni kitaplar eklemesine ve mevcut olanları 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öneticininid(String) vename(String) özellikleri vardır.toString()metodunuAdmin [id]: namedöndürecek şekilde geçersiz kılın (override).library.dart:Librarysınıfınıza yönetim işlevselliği ekleyin:- Kayıtlı yöneticileri saklamak için bir liste ekleyin
registerAdmin(Admin admin)- kütüphaneye bir yönetici ekleraddBookAsAdmin(String adminId, Book book)- eğer yönetici mevcutsa, kitabı ekler veadminId added "title"yazdırır. Eğer yönetici mevcut değilse,Unauthorizedyazdırır.removeBook(String adminId, String isbn)- eğer yönetici mevcutsa ve kitap mevcutsa, kitabı kütüphaneden kaldırır veadminId removed "title"yazdırır. Eğer yönetici mevcut değilse,Unauthorizedyazdırır. Eğer kitap mevcut değilse,Book not foundyazdırır.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: Xşeklinde yazdırın. Ardından, kayıtlı olmayan bir yönetici kimliğiA999ile bir kitap eklemeyi deneyin. Kayıtlı yöneticiyi kullanarak ikinci kitabı 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
1OOP Temelleri
Harici DosyalarKütüphaneler ve ImportlarOOP'ye GirişSınıflar ve Nesnelerthis Anahtar KelimesiMetotlarÖrnek DeğişkenleriConstructor TemelleriÖzet - Basit Hesap Makinesi4Null Safety
Null Safety'ye GirişNullable ve Non-Nullable? ve ! OperatörleriLate Anahtar Kelimesi ve Null SafetyNull-Aware OperatörleriSınıflarda Null SafetyÖzet - Kullanıcı Profili Sistemi7Soyut Sınıflar ve Arayüzler
Soyut SınıflarSoyut MetotlarDart'ta ArayüzlerÖrtük ArayüzlerUygulama vs. GenişletmeÇoklu ArayüzlerÖzet - Şekil Hesaplayıcı10Koleksiyonlar ve Generic'ler
List, Set, Map Genel BakışTip Güvenli KoleksiyonlarGeneric SınıflarGeneric MetotlarGeneric KısıtlamalarIterable ve IteratorÖzet - Generic Depolama13İleri Düzey OOP Kavramları
Kompozisyon ve KalıtımExtension MetotlarÇağrılabilir SınıflarSealed Sınıflar (Dart 3)Records (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ıİsimlendirilmiş Yapıcılarİlklendirme ListeleriSabit YapıcılarFabrika YapıcılarıYönlendiren YapıcılarÖzet - Şekil Oluşturucu5Kapsülleme
Public ve Private Üyeler_ Öneki KuralıKütüphane Düzeyinde GizlilikGetter ve Setter DetaylarıBilgi GizlemeÖzet - Öğrenci Kayıtları8Mixin'ler
Mixin'lere GirişMixin OluşturmaBirden Fazla Mixin KullanımıMixin'lerde on Anahtar KelimesiMixin vs KalıtımMixin vs ArayüzÖzet - Hayvan Sistemi11Özel Metotlar
toString() OverridehashCode ve == OverrideComparable Arayüzücall() MetodunoSuchMethod OverrideÖzet - Özel Koleksiyon14Tasarım Kalıpları Bölüm 1
Tasarım Kalıplarına GirişSingleton KalıbıFactory KalıbıObserver KalıbıStrategy Kalıbı17Final Meydan Okumaları
E-Öğrenme PlatformuBankacılık SistemiOyun Karakter SistemiAraç Kiralama Servisi3Sınıf Özellikleri
Instance ve Statik ÜyelerFinal ve Const AlanlarLate DeğişkenlerStatik Metotlar ve AlanlarGetters ve SettersÖzet - Banka Hesabı Yöneticisi6Kalıtım
Temel Kalıtımsuper Anahtar KelimesiMetot Ezme@override Anotasyonufinal Sınıf Anahtar KelimesiYapıcı Metotlar ve KalıtımÖzet - Çalışan Hiyerarşisi9Çok Biçimlilik
Çok Biçimlilik TemelleriInterface'ler ile Çok BiçimlilikÇalışma Zamanı Tip Kontrolüis ve as OperatörleriCovariant Anahtar KelimesiÖzet - Ödeme İşlemcisi12Asenkron OOP
Futures ve async/awaitStream TemelleriStream Controller'larAsenkron KurucularSınıf Metotlarında Asenkron KullanımıÖzet - Data Fetcher15Tasarım Kalıpları Bölüm 2
Komut KalıbıAdaptör KalıbıDekoratör KalıbıŞablon Metot KalıbıDurum KalıbıKompozit KalıbıRepository Kalıbı