国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

迭代器模式(Iterator)

mayaohua / 2203人閱讀

摘要:迭代器模式一迭代器模式定義提供一種方法順序訪(fǎng)問(wèn)一個(gè)集合對(duì)象中的各種元素,而又不暴露該對(duì)象的內(nèi)部表示角色抽象迭代器接口具體迭代器抽象聚合接口具體聚合二具體實(shí)現(xiàn)創(chuàng)建抽象迭代器接口創(chuàng)建抽象聚合接口創(chuàng)建具體聚合及具體迭代器調(diào)用輸出三優(yōu)缺點(diǎn)優(yōu)點(diǎn)簡(jiǎn)化了

迭代器模式

一. 迭代器模式 1.1 定義

提供一種方法順序訪(fǎng)問(wèn)一個(gè)集合對(duì)象中的各種元素,而又不暴露該對(duì)象的內(nèi)部表示.

1.2 角色

抽象迭代器接口(Iterator).

具體迭代器(ConcreteIterator).

抽象聚合接口(Aggregate).

具體聚合(ConcreteAggregate).

二. 具體實(shí)現(xiàn) 1.1 創(chuàng)建抽象迭代器接口
    public interface Iterator {
        Object next();
        boolean hasNext();
    }
1.2 創(chuàng)建抽象聚合接口
    public interface Aggregate {
        Iterator iterator();
    }
1.3 創(chuàng)建具體聚合及具體迭代器
    public class ConcreteAggregate implements Aggregate {
        @Override
        public Iterator iterator() {
            return new ConcreteIterator();
        }
        private class ConcreteIterator implements Iterator {
            @Override
            public Object next() {
                System.out.println("ConcreteIterator next ...");
                return null;
            }
            @Override
            public boolean hasNext() {
                System.out.println("ConcreteIterator hasNext ....");
                return true;
            }
        }
    }
1.4 調(diào)用
    public static void main(String[] args) {
        Aggregate aggregate = new ConcreteAggregate();
        Iterator iterator = aggregate.iterator();
        if(iterator.hasNext()){
            iterator.next();
        }
    }
1.5 輸出
    ConcreteIterator hasNext ....
    ConcreteIterator next ...
三. 優(yōu)缺點(diǎn) 3.1 優(yōu)點(diǎn)

簡(jiǎn)化了聚合類(lèi)的接口.

3.2 缺點(diǎn)

增加新的聚合類(lèi)需要增加新的具體迭代器.

四. 源碼
    https://github.com/Seasons20/DisignPattern.git

END

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/69643.html

相關(guān)文章

  • 一起學(xué)設(shè)計(jì)模式 - 迭代模式

    摘要:迭代器模式屬于行為型模式的一種,提供一種方法訪(fǎng)問(wèn)一個(gè)容器中各個(gè)元素,而又不需要暴露該對(duì)象的內(nèi)部細(xì)節(jié)。迭代器模式把在元素之間游走的責(zé)任交給迭代器,而不是聚合對(duì)象。 迭代器模式(Iterator Pattern)屬于行為型模式的一種,提供一種方法訪(fǎng)問(wèn)一個(gè)容器中各個(gè)元素,而又不需要暴露該對(duì)象的內(nèi)部細(xì)節(jié)。 概述 迭代器模式聽(tīng)起來(lái)可能感覺(jué)很陌生,但是實(shí)際上,迭代器模式是所有設(shè)計(jì)模式中最簡(jiǎn)單也是...

    JasonZhang 評(píng)論0 收藏0
  • JavaScript 設(shè)計(jì)模式(五):迭代模式

    摘要:文章內(nèi)容分兩部分前半部分為迭代器模式概念后半部分為中迭代器上半部分開(kāi)始迭代器模式提供一種方法順序訪(fǎng)問(wèn)一個(gè)聚合對(duì)象中的各個(gè)元素,而又不需要暴露該對(duì)象的內(nèi)部表示。下半部分開(kāi)始的迭代器迭代器等同于遍歷器。執(zhí)行該函數(shù),會(huì)返回一個(gè)遍歷器對(duì)象。 showImg(https://segmentfault.com/img/bVbuyaZ?w=800&h=600); 文章內(nèi)容分兩部分: 前半部分為 迭...

    zhou_you 評(píng)論0 收藏0
  • js設(shè)計(jì)模式--迭代模式

    摘要:文章系列設(shè)計(jì)模式單例模式設(shè)計(jì)模式策略模式設(shè)計(jì)模式代理模式概念迭代器模式是指提供一種方法順序訪(fǎng)問(wèn)一個(gè)聚合對(duì)象中的各個(gè)元素,而又不需要暴露該對(duì)象的內(nèi)部表示。 前言 本系列文章主要根據(jù)《JavaScript設(shè)計(jì)模式與開(kāi)發(fā)實(shí)踐》整理而來(lái),其中會(huì)加入了一些自己的思考。希望對(duì)大家有所幫助。 文章系列 js設(shè)計(jì)模式--單例模式 js設(shè)計(jì)模式--策略模式 js設(shè)計(jì)模式--代理模式 概念 迭代器模式是指...

    binta 評(píng)論0 收藏0
  • 迭代模式迭代協(xié)議

    摘要:迭代器模式迭代器模式是指提供一種方法順序訪(fǎng)問(wèn)一個(gè)聚合對(duì)象中的各個(gè)元素,而不需要暴露該對(duì)象的內(nèi)部表示。可迭代協(xié)議和迭代器協(xié)議。生成器函數(shù)是可以作為迭代器工廠(chǎng)的函數(shù),當(dāng)它被執(zhí)行時(shí)會(huì)返回一個(gè)新的對(duì)象,該對(duì)象符合可迭代協(xié)議和迭代器協(xié)議。 迭代器模式 迭代器模式是指提供一種方法順序訪(fǎng)問(wèn)一個(gè)聚合對(duì)象中的各個(gè)元素,而不需要暴露該對(duì)象的內(nèi)部表示。 迭代器分為內(nèi)部迭代器和外部迭代器。內(nèi)部迭代器只需一次初...

    doodlewind 評(píng)論0 收藏0
  • PHP設(shè)計(jì)模式迭代模式

    摘要:概念迭代器模式,又叫做游標(biāo)模式。另外,當(dāng)需要對(duì)聚集有多種方式遍歷時(shí),可以考慮去使用迭代器模式。迭代器模式為遍歷不同的聚集結(jié)構(gòu)提供如開(kāi)始下一個(gè)是否結(jié)束當(dāng)前哪一項(xiàng)等統(tǒng)一的接口。 概念 迭代器模式(Iterator),又叫做游標(biāo)(Cursor)模式。提供一種方法順序訪(fǎng)問(wèn)一個(gè)聚合對(duì)象中的各種元素,而又不暴露該對(duì)象的內(nèi)部表示。 當(dāng)你需要訪(fǎng)問(wèn)一個(gè)聚合對(duì)象,而且不管這些對(duì)象是什么都需要遍歷的時(shí)候,就...

    陸斌 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<