C#方法:
using DesignPattern.ChainofResponsibilityPattern;
using DesignPattern.IteratorPatttern;
using DesignPattern.MementoPattern;
using DesignPattern.ObserverPattern;
using DesignPattern.VisitorPattern;
using System;
using System.Collections.Generic;
namespace DesignPattern
{
internal class Program
{
static void Main(string[] args)
{
IteratorHelper();
}
#region Pattern - Iterator
static void IteratorHelper()
{
ObjectRepository
_stringRepository.AddObject("A");
_stringRepository.AddObject("B");
_stringRepository.AddObject("C");
_stringRepository.AddObject(11.ToString());
ObjectRepository
_intRepository.AddObject(-1);
_intRepository.AddObject(10);
_intRepository.AddObject(20);
_intRepository.AddObject(30);
for (Iterator
{
Console.WriteLine("Object is: " + _iterator.Next());
}
Console.WriteLine("===================================================================");
for (Iterator
{
Console.WriteLine("Object is: " + _iterator.Next());
}
Console.ReadLine();
#endregion
}
}
}
//=======================================================================================================
namespace DesignPattern.IteratorPatttern
{
///
/// 迭代器
///
public interface Iterator
{
bool HasNext();
T Next();
}
///
/// 容器集装箱
///
public interface IContainer
{
Iterator
}
///
/// 对象库
///
public class ObjectRepository
{
ObjectIterator
public ObjectRepository()
{
m_ObjectIterator = new ObjectIterator
}
public Iterator
{
return m_ObjectIterator;
}
public void AddObject(T obj)
{
m_ObjectIterator.m_ObjectRepository.Add(obj);
}
///
/// 对象迭代器
///
class ObjectIterator
{
public ObjectIterator()
{
m_ObjectRepository = new List
}
int index;
public List
public bool HasNext()
{
if (index < m_ObjectRepository.Count)
{
return true;
}
return false;
}
Tobjcet Iterator
{
if (HasNext())
{
return m_ObjectRepository[index++];
}
return default;
}
}
}
}王小黑 王小黑
841***494@qq.com
3年前 (2022-09-28)