-
[TIL] 12주차 2일 기술 면접 대비개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 3. 09:54
기술면접 대비 과제로
알고 있는 개념과 지식 확립하기
using System; // 사각형 클래스 public class Rectangle { public double Width { get; set; } public double Height { get; set; } public double CalculateArea() { return Width * Height; } } // 원 클래스 public class Circle { public double Radius { get; set; } public double CalculateArea() { return Math.PI * Radius * Radius; } } // 면적 계산기 클래스 public class AreaCalculator { public double CalculateRectangleArea(Rectangle rectangle) { return rectangle.CalculateArea(); } public double CalculateCircleArea(Circle circle) { return circle.CalculateArea(); } } class Program { static void Main(string[] args) { Rectangle rectangle = new Rectangle { Width = 5, Height = 10 }; Circle circle = new Circle { Radius = 3 }; AreaCalculator calculator = new AreaCalculator(); double rectangleArea = calculator.CalculateRectangleArea(rectangle); double circleArea = calculator.CalculateCircleArea(circle); Console.WriteLine($"Rectangle Area: {rectangleArea}"); Console.WriteLine($"Circle Area: {circleArea}"); } }
- 위 코드에서 삼각형 Triangle 클래스를 새로 작성한다고 했을 때, AreaCalculator의 코드를 수정하지 않고 AreaCalculator가 삼각형의 넓이를 계산하도록 만들 수 있을까요?
- 1번 질문 답변을 바탕으로 위 코드가 유지보수 측면이 어려운 부분을 설명해주세요.
답변:
1. 없다.
2. AreaCalculator를 통해서 도형의 넓이를 구할 때, 도형이 늘어나면 늘어날 때마다 AreaCalculator 클래스에 함수를 추가해줘야 하는데 나중에 넓이를 구할때 뿐만 아니라 기능을 더 늘린다거나 리펙토링을 할 때도 모든 함수에 기능을 추가하는 등 유지보수가 너무 어렵다.
'개발일지 > 스파르타 코딩클럽 부트캠프' 카테고리의 다른 글
[TIL] 12주차 3일 기술면접 대비 (0) 2024.07.05 [TIL] 12주차 4일 ( Raycast2D로 연속점프 방지하기 _ 트러블슈팅 ) (0) 2024.07.04 [TIL] 12주차 1일 ( FSM, 유한 상태 머신 ) (0) 2024.07.01 [TIL] 11주차 5일 ( 리소스 데이터 관리 ) (0) 2024.06.28 [TIL] 11주차 4일 최종 프로젝트 기획 (0) 2024.06.27