KitapFactory nesnesini kullanıyoruz. Sebebi ise birden fazla nesne tipini kolay oluşturmak için.
Nesne üretim masraflarından kaçmak için deepclone sistemi kuruyoruz. Bunu javanın kendi Clonable classıyla yapıyoruz.
Kitaplik nesnesinde kitap nesneleri kullanıma hazır bir şekilde oluşturulup tutulamaktadır.
Kitap içinde bir builder classı tanımlanarak set işlemlerini oradan yapıyoruz ve değişkenlere final ekliyoruz. Böylece daha iyi bir constructer elde ediyoruz.
Stoklar classını Iterabledan extend ettiğimizde javanın foreachiyle birlikte çalıştrabiliriz. Bunu kullanarak yapılmıştır.
Kitap Statelerini KitapMemento olarak kaydedip geri yükleyebiliyoruz. Stateler bakicida tutulabiliyor. Her şey bakici üzerinden çağırılıyor.