2023.11.15 오늘의 기록 인터페이스와 열거형

2023. 11. 16. 00:11카테고리 없음

1) 인터페이스의 사용 이유

 

  1. 코드의 재사용성: 인터페이스를 사용하면 다른 클래스에서 해당 인터페이스를 구현하여 동일한 기능을 공유할 수 있습니다. 인터페이스를 통해 다양한 클래스가 동일한 동작을 수행할 수 있으므로 코드의 재사용성이 향상됩니다.
  2. 다중 상속 제공: C#에서는 클래스는 단일 상속만을 지원하지만, 인터페이스는 다중 상속을 지원합니다. 클래스가 여러 인터페이스를 구현함으로써 여러 개의 기능을 조합할 수 있습니다. 다중 상속을 통해 클래스는 더 다양한 동작을 수행할 수 있습니다.
  3. 유연한 설계: 인터페이스를 사용하면 클래스와 인터페이스 간에 느슨한 결합을 형성할 수 있습니다. 클래스는 인터페이스를 구현하기만 하면 되므로, 클래스의 내부 구현에 대한 변경 없이 인터페이스의 동작을 변경하거나 새로운 인터페이스를 추가할 수 있습니다. 이는 유연하고 확장 가능한 소프트웨어 설계를 가능하게 합니다.

인터페이스 정의

interface IMyInterface
{
    void Method1();
    int Method2(string str);
}

인터페이스 구현

class MyClass : IMyInterface
{
    public void Method1()
    {
        // 구현
    }

    public int Method2(string str)
    {
        // 구현
        return 0;
    }
}

 

2) 열거형(ENUMS)

 

  1. 가독성: 열거형을 사용하면 일련의 연관된 상수들을 명명할 수 있습니다. 이를 통해 코드의 가독성이 향상되고, 상수를 사용할 때 실수로 잘못된 값을 할당하는 것을 방지할 수 있습니다.
  2. 자기 문서화(Self-documenting): 열거형은 의미 있는 이름을 사용하여 상수를 명명할 수 있습니다. 이를 통해 코드의 가독성이 향상되며, 상수의 의미를 명확하게 설명할 수 있습니다.
  3. 스위치 문과의 호환성: 열거형은 스위치 문과 함께 사용될 때 유용합니다. 열거형을 사용하면 스위치 문에서 다양한 상수 값에 대한 분기를 쉽게 작성할 수 있습니다.

enum MyEnum
{
    Value1 = 10,
    Value2,
    Value3 = 20
}

 

int intValue = (int)MyEnum.Value1;  // 열거형 값을 정수로 변환
MyEnum enumValue = (MyEnum)intValue;  // 정수를 열거형으로 변환

 

switch(enumValue)
{
    case MyEnum.Value1:
        // Value1에 대한 처리
        break;
    case MyEnum.Value2:
        // Value2에 대한 처리
        break;
    case MyEnum.Value3:
        // Value3에 대한 처리
        break;
    default:
        // 기본 처리
        break;
}

 

4주차 강의에 대한 이론 내용 정리와, 알고리즘 문제를 풀어보았는데, 확실히 C# 코드 정리와 함수에 대한 개념이 더 필요한 상태인 것 같다. 앞으로 다양한 알고리즘 문제와, 코드활용을 해보면서 실력을 늘려야겠다.