72. 增加规约:
public class BookShelf { 1、不同作者的书放到相应
private List books; 的书架
2、不同类型的书放到相应
public BookShelf(){
的书架
books = new ArrayList();
}
public void addBook( Book book ){
books.add(book);
}
}
74. public class AuthorSpecification implements
Specification {
private String author;
public AuthorSpecification( String author ){
this.author = author;
}
public boolean isSatisfiedBy(Book book) {
return ( book.getAuthor().equals(author) );
}
}
public void addBook( Book book ){
if ( validate( book ) )
books.add(book);
}
private boolean validate( Book book ){
AuthorSpecification as = new AuthorSpecification( author );
TypeSpecification ts = new TypeSpecification( type );
return ( as.isSatisfiedBy(book) && ts.isSatisfiedBy(book) );
}