快速业务通道

Java小例子:图书馆课程设计 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
xecute() { 170. for (Book book : getBooks()) { 171. System.out.println(book); // 这里会自动调用 book.toString() 172. } 173. return "命令完成。"; 174. } 175. 176. private ArrayList<Book> getBooks() { 177. ArrayList<Book> result = new ArrayList<Book>(); 178. 179. for (Book book : books) { 180. if (isValid(book)) { 181. result.add(book); 182. } 183. } 184. return result; 185. } 186. 187. // 考虑到第 1、2、3 条命令大体相同,这里提供了一个给子类覆写的方法 188. protected boolean isValid(Book book) { 189. return true; 190. } 191. } 192. 193. ///////////////////////////////////////////////////// 列出已借出的书。 194. // 注意它的父类不是 Command,而是 Command1。这样节省了很多重复代码 195. private class Command2 extends Command1 { 196. 197. @Override 198. protected boolean isValid(Book book) { 199. return book.isBorrowed(); 200. } 201. } 202. 203. //////////////////////////////////////////////////////// 列出过期未还的书 204. private class Command3 extends Command1 { 205. 206. @Override 207. protected boolean isValid(Book book) { 208. // 判断一本书接触过期与否的方法最好在 Book 类中去实现。 209. return book.isExpired(); 210. } 211. } 212. 213. /////////////////////////////////////////////// 创建图书 214. private class Command5 extends Command { 215. 216. protected String execute() { 217. String type = getType(); 218. String name = getName(); 219. if (getBookByName(name) == null) { 220. books.add(new Book(type, name)); 221. return "图书添加成功。"; 222. } else { 223. return "图书添加失败:名称已存在。"; 224. } 225. } 226. 227. // 获得用户输入的书名 228. private String getName() { 229. return prompt("请输入书名:", NOT_EMPTY_PATTERN); 230. } 231. 232. // 获得用户选择的图书类型 233. private String getType() { 234. return prompt(TYPE_MENU, DIGIT_CHOICE_PATTERN); 235. } 236. } 237. 238. /////////////////////////////////////////////////////// 列出所有读者 239. private class Command4 extends Command { 240. 241. protected String execute() { 242. for (Reader reader : readers) { 243. System.out.println(reader); 244. } 245. return "命令完成。"; 246. } 247. } 248. 249. /////////////////////////////////////////////////////// 创建读者 250. private class Command6 extends Command { 251. 252. protected String execute() { 253. String name = getName(); 254. if (getReaderByName(name) == null) { 255. readers.add(new Read

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号