Iterator(迭代器模式)--(超市管理者) - html/css语言

这个Iterator就是收银台干的活。   [ html]   package patterns.actions.iterator;      public interface IteratorList {          boolean isEmpty();//是否还有[hasNext()]              Object nextMerchandise();//merchandise:商品       }     [java]  package patterns.actions.iterator;      /**   * 收银台清点商品   * @author one   *   */   public class IteratorCheck implements IteratorList {       private Supermarket shop;              private int total=0;              private int current=0;              IteratorCheck(Supermarket shop){           this.shop=shop;           this.total=shop.size();           this.current=0;       }          @Override       public boolean isEmpty() {           return this.current<this.total;       }          @Override       public Object nextMerchandise() {           if(this.current<this.total)               return this.shop.take(this.current++);           return null;       }       }     [java]   package patterns.actions.iterator;      /**   * 购物的基本要素   * @author one   *   */   public interface Shopping {          public void buy(Object obj);//买新的产品[add]              public IteratorList iteratorList();//结账[iterator]          }     [java]   package patterns.actions.iterator;      import java.util.ArrayList;   import java.util.List;      /**   * 超市提供具体的购物环境   *    * @author one   *    */   public class Supermarket implements Shopping {       private List cart = new ArrayList();// 购物车作为容器          @Override       public void buy(Object obj) {           cart.add(obj);// 将商品放到购物车          }          @Override       public IteratorList iteratorList() {           return new IteratorCheck(this);       }          public int size() {           return this.cart.size();       }          public Object take(int current) {           if(current<this.cart.size())               return this.cart.get(current);           return null ;       }   }     [java]   package patterns.actions.iterator;      public class Client {          /**       * @param args       */       public static void main(String[] args) {           Shopping cart = new Supermarket();           cart.buy("可乐");           cart.buy("果汁");           cart.buy("酸梅");              IteratorList check = cart.iteratorList();           while (check.isEmpty()) {               System.out.println(check.nextMerchandise());           }          }      }     输出结果: [html]   可乐  
返回顶部
跳到底部

Copyright 2011-2024 南京追名网络科技有限公司 苏ICP备2023031119号-6 乌徒帮 All Rights Reserved Powered by Z-BlogPHP Theme By open开发

请先 登录 再评论,若不是会员请先 注册