导航
您当前的位置:首页 > 计算机 > 软件水平
问题:

[问答题] 某图书管理系统中管理着两种类型的文献:图书和论文。现在要求统计所有馆藏文献的总页码(假设图书馆中有一本540页的图书和两篇各25页的论文,那么馆藏文献的总页码就是590页)。采用Visitor(访问者)模式实现该要求,得到如图6-1所示的类图。中级软件设计师,历年真题,2015年上半年(下午)《软件设计师》真题图6-1 Visitor模式类图【Java代码】import java.util.*;interface LibraryVisitor{(1);(2);void printSum(  );}class LibrarySumPrintVisitor implements LibraryVisitor{//打印总页数private int sum=0;public void visit(Book p_book){sum=sum+p_book.getNumberOfPages(  );}public void visit(Article p_article){sum=sum+p_article.getNumberOfPages(  );}public void printSum(  ){System.out.println("SUM="+sum);}}interface LibraryItemInterface{(3);}class?Article implements LibraryItemInterface{private String m_title;//论文名private String m_author;//论文作者private int?m_start_page;private int?m_end_page;public Article(String p_author,String p_title,int p_start_page,int p_end_page){m_title=p_title;m_author=p_author;m_end_page=p_end_page;}public int getNumberOfPages(  ){return m_end_page-m_start_page;}public void accept(LibraryVisitor Visitor){(4);}}class Book implements LibraryItemInterface{private String m_title;//书名private String m_author;//书作者private int?m_pages;//页教public Book(String p_author,String p_title,int p_pages){m_title=p_title;m_author=p_author;m_pages=p_pages;}public int getNumberOfPages(  ){return m_pages;}public void accept(LibraryVisitor visitor){(5);}}
答案解析:

相关问题
关于我们 | 用户指南 | 版权声明 | 给我留言 | 联系我们 | 积分商城 | 答案求助 | 网站地图
Copyright © 2024 www.daanwo.com All Rights Reserved