새로 생성한 스크립트
- Test_Compare
- Test_Iterator
기억 안나는 이론
팩토리 패턴
- 팩토리 패턴 : 자기를 생성해서 리턴하는 디자인패턴이다.
private class User
{
public int Id;
public string Name;
public int Hp;
public User(int id)
{
Id = id;
Name = "";
Hp = 0;
}
public User(int id, string name, int hp)
{
Id = id;
Name = name;
Hp = hp;
}
public override string ToString()
{
return $"Id : {Id}, Name : {Name}, Hp : {Hp}";
}
public static User New(int id)
{
return new User(id);
}
}
User[] findUsers = new User[]
{
User.New(3), User.New(1) //팩토리 패턴 : 자기를 생성해서 리턴하는 디자인패턴이다.
};
반복기
- IEnumerator와 IEnumerable을 이용한 기법이다.
using System.Collections.Generic의 인터페이스
- 제네릭의 인터페이스를 상쇽하여 사용할때 관련 코드를 살펴봐야한다.
- 제네릭의 인터페이스가 Collections의 인터페이스를 상속하는 경우 이것도 같이 구현해야한다.
public interface IEnumerable<out T> : IEnumerable
{
IEnumerator<T> GetEnumerator();
}
public interface IEnumerable
{
IEnumerator GetEnumerator();
}
- 위에처럼 코드가 있는경우 제네릭의 인터페이스를 상속하면 Collections의 요소도 같이 생성해야한다.
public IEnumerator<string> GetEnumerator()
{
throw new System.NotImplementedException();
}
IEnumerator IEnumerable.GetEnumerator() //IEnumerable<T>가 IEnumerable을 상속하기 때문에 이것도 구현해야한다. / IEnumerable.처럼 명시적으로 구현해도 되지만 암시적으로 구현해도 된다.
{
throw new System.NotImplementedException();
}