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

📄 a_iterator.java

📁 超好的设计模式Java事例程序
💻 JAVA
字号:
/*
ITERATOR—我爱上了Mary,不顾一切的向她求婚。 

  Mary:“想要我跟你结婚,得答应我的条件” 

  我:“什么条件我都答应,你说吧” 

  Mary:“我看上了那个一克拉的钻石” 

  我:“我买,我买,还有吗?” 

  Mary:“我看上了湖边的那栋别墅” 

  我:“我买,我买,还有吗?” 

  Mary:“我看上那辆法拉利跑车” 

  我脑袋嗡的一声,坐在椅子上,一咬牙:“我买,我买,还有吗?” 

  …… 

  迭代子模式:迭代子模式可以顺序访问一个聚集中的元素而不必暴露聚集的内部表象。
	多个对象聚在一起形成的总体称之为聚集,聚集对象是能够包容一组对象的容器对象。
	迭代子模式将迭代逻辑封装到一个独立的子对象中,从而与聚集本身隔开。
	迭代子模式简化了聚集的界面。每一个聚集对象都可以有一个或一个以上的迭代子对象
	,每一个迭代子的迭代状态可以是彼此独立的。迭代算法可以独立于聚集角色变化。 
*/


/* 实际应用示例
 
import java.util.*;
class Test{
	public static void main(String[] args) {
		TreeSet ts=new TreeSet();
		ts.add("word");ts.add("tea");ts.add("hello");
		Iterator it=ts.iterator();
		while (it.hasNext()) {
            String infor = (String)it.next();
            System.out.println(infor);
        }
	}
}
*/



import java.util.*;
public class A_iterator{
    public static void main(String[] args) {
        Girl lily = new Girl();
        //lily.learn("我要帅哥");
        
        Iterator it = lily.allaskfor();
        while (it.hasNext()) {
            String infor = (String)it.next();
            System.out.println(infor);
        }
    }
}
class Girl{
	private AskForAll askfor=new AskForAll();
	
	public void learn(String infor){
		this.askfor.addAskFor(infor);
	}
	
	public Iterator allaskfor(){
		return askfor;
	}
}

interface Iterator {
    public boolean hasNext();
    public Object next();
}


class AskForAll implements Iterator{
	Vector askes=new Vector();
	int index=0;
	public AskForAll(){
		askes.add("我要别墅");
		askes.add("我要宝马");
		askes.add("我要美丽");
		askes.add("我要青春");
	}
	public void addAskFor(String contents){
		askes.add(contents);
	}
	public boolean hasNext(){
		
		if (index<askes.size()){
			return true;
		}
		else{
			return false;
		}
		
	}
    public Object next(){
    	return askes.get(index++);
    }

}

⌨️ 快捷键说明

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