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());
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律