head first 设计模式 迭代模式笔记


public interface Iterator
{
    MenuItem [] items;
    int positions = 0;
    
    publci DinerMenuIterator (MenuItem[] items)
    {
        this.items= items;
    }
    
    public Object next()
    {
        MenuItem menuItem = items[positions];
        position = position  + 1;
        return menuItem ;
    }
    
    public boolean hasNext()
    {
        if(position >=items.length || items[position]==null)
        {
            return false;
        }
        else
        {
            return ture;
        }
        
    }


}




public class DinerMenu
{
    static final int MAX_ITEMS = 6;
    INT numberOfItems = 0;
    MenuItem[] menuItems;    
    
    public Iterator createIterator()
    {
       return new DinerMenuIterator(menuItems);
    }
}

public calss DinerMenuIterator
{
    
}

public calss PancakeHouseIterator
{
    
}

public class PancakeHouseMenu
{
    static final int MAX_ITEMS = 6;
    INT numberOfItems = 0;
    MenuItem[] menuItems;    

    public Iterator createIterator()
    {
       return new PancakeHouseIterator(menuItems);
    }
}


public class Waitress
{
    PancakeHouseMenu pancakeHouseMenu;
    DinerMenu dinerMenu;

    public Waitress(PancakeHouseMenu PancakeHOuseMenu,DinerMenu dinerMenu)
    {
        this.pancakeHouseMenu = pancakeHouseMenu;
        this.dinerMenu = dinerMenu;
    }
    
public void PrintMenu()
{
    Iterator pancakeIterator = PancakeHouseMenu.createIterator();
    Iterator dinerIterator = dinerMenu.createIterator();
    System.out.println("MENU\n ----\n BREAKFAST");
    printMenu(pancakeIterator);
    System.out.println("\nLUNCH");
    PrintMenu(dinerIterator);
}


private void PrintMenu(Iterator iterator)
{
    while(iteraor.hasNext())
    {
        MenuItem menuItem = (MenuItem)iterator.next();
        System.out.println(MenuItem.getName() + ", ");
        System.out.println(MenuItem.getPrice() + ", ");
        System.out.println(MenuItem.getDescription());
    }
}

}
posted @   潇潇息一去不复返  阅读(317)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
努力才能前进,勤耕博客才能看远
点击右上角即可分享
微信分享提示