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

📄 monktang.java

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

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

public class MonkTang
{
    /**
     * @link aggregation
     * @directed 
     */
    private static Vector desciples;

    /**
     * @link aggregation
     * @directed
     * @clientCardinality 1
     * @supplierCardinality * 
     */
    private Desciple lnkDesciple;

    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 ;

        Iterator it = desciples.iterator();

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

    }

    private static void listConcrete()
    {
        Desciple desciple ;

        Vecterator vect = new Vecterator(desciples);

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

    }

    private static void listInternal()
    {
        Desciple desciple ;

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

	private static void listRobust()
    {
        Desciple desciple ;

        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 + -