迭代器模式(Iterator Pattern)是一种设计模式,它可以让我们遍历一个聚合对象的元素而无需暴露其内部实现。迭代器模式提供了一种方式来顺序访问一个聚合对象中的各个元素,而不暴露聚合对象的内部实现细节。
在 Go 语言中,可以通过定义一个 Iterator 接口来实现迭代器模式。该接口需要定义两个方法:Next 和 HasNext。Next 方法用于获取下一个元素,HasNext 方法用于判断是否还有下一个元素。接下来,我们将定义一个 Aggregate 接口和一个具体的聚合对象类型来实现迭代器模式。
在上面的代码中,我们定义了一个迭代器接口 Iterator 和一个聚合对象接口 Aggregate,具体的聚合对象类型 Numbers 实现了 Aggregate 接口。Numbers 类型包含一个整数切片来存储数字,并实现了 Iterator 方法来返回一个 NumberIterator 对象。
在 main 函数中,我们创建了一个 Numbers 对象,并使用其 Iterator 方法返回一个迭代器对象,然后使用 for 循环遍历该迭代器对象,并打印其中的元素。
通过这种方式,我们可以遍历 Numbers 对象中的所有数字,而不需要了解其内部实现细节。迭代器模式使得聚合对象的实现和遍历分离开来,从而提高了代码的可维护性和可重用性。
