메서드의 반환값이나 인수를 인터페이스로 지정하면 좋은 점
--> 프로그램을 수정하기 좋아진다.
예를 들어 구체적으로 리스트를 받아들이도록 구현했는데
추후 배열로도 받아들일 수 있도록 수정이 필요할 경우.
처음 프로그래밍할 때 인터페이스를 활용하여 IEnumerable<T>를 받도록 구현했다면
배열도 IEnumerable<T>를 구현한 것이기 때문에 따로 수정할 필요가 없다.
구체적인 형이 아니라 인터페이스를 대상으로 코드를 작성했다면 아무것도 수정하지 않아도 된다.
인터페이스는 공산품의 규격이다.
- A 클래스가 I 인터페이스를 구현했다면 A 객체는 I 형 변수에 대입될 수 있다.
- I 형 변수는 I 인터페이스가 정의하는 속성과 메서드를 사용할 수 있다.
- 속성이나 메서드가 실행할 수 있는 구체적인 동작은 I 인터페이스가 아니라 상속받는 A 클래스에서 작성된다.
'C# > 기본적인 팁' 카테고리의 다른 글
딕셔너리와 비슷하지만 '키' 부분만 저장하고 '값'을 저장하지 않는 HashSet<T> 클래스 (0) | 2021.08.23 |
---|---|
배열과 List<T>의 다양한 처리 (조건을 만족하는 요소 구하기, 중복 제거, 순서대로 나열, 컬렉션 연결) (0) | 2021.08.16 |
기본적인 관용구 (0) | 2021.08.04 |
형식적으로 인스턴스를 생성하는 것은 낭비이다. (0) | 2021.05.18 |
C# 응용프로그램에서 상수를 정의할 때 static readonly를 사용하자 (0) | 2021.05.18 |