(2)每個文件夾包含許多書。因為圖書的類型不是固定的,比如壓縮文件類型的圖書,其他格式的圖書,所以需要對它們進行抽象,實現壹個接口。
(3)每本書包含多頁。因為每個頁面的格式不壹樣,所以需要抽象。
(4)每本書都會包含壹個圖像緩存,這個緩存提供的功能相對固定,但也可以進壹步抽象。
Catalog表示壹個文件夾類,它包含可觀察的集合
IBook是代表壹本書的抽象接口,它實現了INotifyPropertyChanged來實現UI級綁定。
BaseBook是壹個實現IBook接口的類,為每本書提供基本實現。
RarBook派生於BaseBook類,實現了壓縮格式的Book對象。
IBookItem接口是壹個表示書籍頁面的接口,IBook接口包含壹個list類型的接口
RarPage實現IBookItem接口,提供RarBook書籍的頁面實現。