Java学习笔记技术干货技术文

迭代器与组合模式

2016-08-17  本文已影响202人  Kwee
迭代器模式
迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而不是暴露其内部的表示。

组合模式允许你将对象组合成树形节后来表现“整体/部分”层次结构。
组合能让客户以一致的方式处理个别对象以及对象组合。

实例解析:
已知有早餐和晚餐两种菜单,早餐菜单采用ArrayList实现、晚餐菜单用数组实现。现在需要合并两种菜单
请使用迭代器模式来演示菜单的显示。
设计类图:


Paste_Image.png

主函数代码:

public class Test {
    public static void main(String[] args) {
        Menu breakfastMenu = new BreakfastMenu();
        Menu dinerMenu = new DinerMenu();
        Waitress waitress = new Waitress(breakfastMenu, dinerMenu);
        waitress.printMenu();
    }
}

具体代码

组合模式

现在又有一个咖啡厅的菜单,采用Hashtable实现。试整合菜单。

设计图

主函数代码:

public class Test {
    public static void main(String[] args) {
        MenuComponent pancakeHouseMenu = new Menu("pancakeHouseMenu", "Breakfast");
        MenuComponent dinnerMenu = new Menu("dinnerMenu", "lunch");
        MenuComponent cafeMenu = new Menu("cafeMenu", "cafe");
        MenuComponent dessert = new Menu("dessertMenu", "dessert");
        MenuComponent allMenus = new Menu("all menus", "all menus combined");
        allMenus.add(pancakeHouseMenu);
        allMenus.add(dinnerMenu);
        allMenus.add(cafeMenu);
        dinnerMenu.add(new MenuItem(
              "dinner1", "dinner1 description", true, 1.111
        ));
        dinnerMenu.add(dessert);
        dessert.add(new MenuItem(
                "dessert2", "dessert2 description", true, 2.22
        ));
        Waitress waitress = new Waitress(allMenus);
        waitress.printMenu();
    }
}

具体代码

设计原则

上一篇 下一篇

猜你喜欢

热点阅读