[c#] 다형성을 이용한 디자인 패턴 적용

다형성(polymorphism)은 객체 지향 프로그래밍에서 중요한 개념으로, 여러 클래스가 동일한 이름의 메서드를 가지고 있을 때 이를 상위 클래스 타입으로 통일하여 다양한 하위 클래스들을 하나의 타입으로 다룰 수 있는 기능을 말합니다.

이번에는 C# 언어를 사용하여 다형성을 이용하여 간단한 디자인 패턴을 적용하는 예제를 살펴보겠습니다.

다형성과 디자인 패턴

디자인 패턴은 소프트웨어 공학에서 자주 발생하는 문제들을 해결하기 위해 고안된 솔루션들을 설명한 것입니다. 여러가지 패턴이 존재하지만, 여기서는 간단하게 Strategy 패턴을 적용하는 예제를 다루겠습니다.

Strategy 패턴 적용 예제

// 전략 인터페이스
interface IStrategy
{
    void Execute();
}

// 구체적인 전략 클래스
class ConcreteStrategyA : IStrategy
{
    public void Execute()
    {
        Console.WriteLine("Executing concrete strategy A");
    }
}

class ConcreteStrategyB : IStrategy
{
    public void Execute()
    {
        Console.WriteLine("Executing concrete strategy B");
    }
}

// Context 클래스
class Context
{
    private IStrategy _strategy;

    public Context(IStrategy strategy)
    {
        _strategy = strategy;
    }

    public void SetStrategy(IStrategy strategy)
    {
        _strategy = strategy;
    }

    public void ExecuteStrategy()
    {
        _strategy.Execute();
    }
}

위의 코드는 Strategy 패턴을 구현하는 간단한 예제입니다. IStrategy 인터페이스를 구현하는 ConcreteStrategyAConcreteStrategyB 클래스, 그리고 Context 클래스가 있습니다. 이 코드는 다형성을 이용하여 여러 종류의 전략을 동적으로 선택하여 실행할 수 있는 유연한 구조를 갖추고 있습니다.

마무리

다형성을 이용한 디자인 패턴은 소프트웨어의 유연성과 확장성을 높일 수 있습니다. Strategy 패턴은 다양한 상황에 맞게 알고리즘을 동적으로 적용하기 위한 패턴으로 유용하게 활용될 수 있습니다.

이러한 디자인 패턴을 알고 있고, 다형성을 적절히 활용할 수 있다면 보다 유지보수가 용이하고 확장성 있는 소프트웨어를 설계할 수 있을 것입니다.

참고 자료