⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 monktang.java

📁 《Java与模式》一书的源代码
💻 JAVA
字号:
package com.javapatterns.iterator.monkey;

import java.util.Iterator;
import java.util.ListIterator;
import java.util.Vector;
import com.javapatterns.iterator.vecterator1.Vecterator;

public class MonkTang
{
    private static Vector desciples;

    public static void main(String[] args)
    {
        desciples = new Vector(3);

        Desciple monkey = new Monkey();
        Desciple pigsy = new Pigsy();
        Desciple sandy = new Sandy();

        desciples.add(monkey);
        desciples.add(pigsy);
        desciples.add(sandy);

        System.out.println("The following is from polymorphic iterator");
        listPolymorphic();

        System.out.println("The following is from concrete iterator");
        listConcrete();

        System.out.println("The above are also external iterators");
        System.out.println("The follwoing is from internal iterator");
        listInternal();

        System.out.println("The follwoing from robust iterator");
        listRobust();
    }

    private static void listPolymorphic()
    {
        Desciple desciple = null;

        Iterator it = desciples.iterator();

        while (it.hasNext())
        {
            desciple = (Desciple)it.next();
            desciple.speak();
        }

    }

    private static void listConcrete()
    {
        Desciple desciple = null;

        Vecterator vect = new Vecterator(desciples);

        while (vect.hasNext())
        {
            desciple = (Desciple)vect.next();
            desciple.speak();
        }

    }

    private static void listInternal()
    {
        Desciple desciple = null;

        for (int i = 0; i < desciples.size(); i++)
        {
            desciple = (Desciple)desciples.elementAt(i);
            desciple.speak();
        }
    }

    private static void listRobust()
    {
        Desciple desciple = null;

        ListIterator it = desciples.listIterator();

        while (it.hasNext())
        {
            desciple = (Desciple)it.next();
            if (desciple instanceof Monkey)
            {
                it.remove();
                it.next();

                it.add(new Horse());
                it.previous();
            }
            desciple.speak();
        }

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -