亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

迭代器模式(Iterator)

mayaohua / 2254人閱讀

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

迭代器模式

一. 迭代器模式 1.1 定義

提供一種方法順序訪問一個集合對象中的各種元素,而又不暴露該對象的內(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)

簡化了聚合類的接口.

3.2 缺點(diǎn)

增加新的聚合類需要增加新的具體迭代器.

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

END

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

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/69643.html

相關(guān)文章

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

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

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

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

    zhou_you 評論0 收藏0
  • js設(shè)計模式--迭代模式

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

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

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

    doodlewind 評論0 收藏0
  • PHP設(shè)計模式迭代模式

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

    陸斌 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<