더북(TheBook)

예제 12-10 패턴을 사용하지 않고 둘레 길이 계산 ▶ ShapePerimeterBeforePatterns.cs

static double Perimeter(Shape shape)
{
    if (shape == null)
        throw new ArgumentNullException(nameof(shape));
    Rectangle rect = shape as Rectangle;
    if (rect != null)
        return 2 * (rect.Height + rect.Width);
    Circle circle = shape as Circle;
    if (circle != null)
        return 2 * PI * circle.Radius;
    Triangle triangle = shape as Triangle;
    if (triangle != null)
        return triangle.SideA + triangle.SideB + triangle.SideC;
    throw new ArgumentException(
        $"Shape type {shape.GetType()} perimeter unknown", nameof(shape));
}

Note ≡


메서드 내부에 중괄호가 없어서 코드를 읽기가 불편할 수 있다. 일반적으로 모든 루프와 if 문 등에 중괄호를 사용하는 편이지만, 패턴의 예를 적용할 것이기 때문에 간결함을 위해 중괄호를 생략했다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.