반응형
교내에서 `C++과 Windows api를 이용한 그림판` 을 주제로 2달간 프로젝트를 했습니다.
객체 지향 프로그래밍에 집중했고 여러 가지의 component의 클래스와 메서드를 window 라이브러리에서 가져다 쓰는 것이 아닌, gui를 직접 구현했습니다. composite 패턴 / opserver 패턴을 활용했습니다. 다형성을 적용하여 유지, 보수에 신경썼습니다.
- `라이브러리와 응용프로그램 분리`
- 라이브러리로 사용할 프로젝트를 먼저 만들고, 이 라이브러리를 갖다 쓰는 응용프로그램으로 그림판 프로젝트를 만듭니다.
- 각 클래스의 특징을 파악해서 둘 중 어느 프로젝트로 배치할지 고민해야 합니다.
- `상속과 다형성`
- 상속 관계를 잘 설계해야 불필요한 멤버변수와 메서드를 줄일 수 있습니다.
- 이는 clean code에도 영향을 주며, 유지 보수하기도 편해집니다.
- 따라서 클래스 UML을 작성하여 상속 관계를 파악하는데 중점을 뒀습니다.
- 각 자식 class 마다 공통적인 부분은 부모에게 상속받도록 하고, 개별 특징을 나타내는 부분만 override 해서 추가로 구현해 주는 것이 기본 원리입니다.
- `그림판 기능`
- 그리기 도구 모음 열기 / 닫기
- 사각형, 타원, 선 그리기
- 도형 그룹화하기
- 도형 이동하기
- 색상 채우기
- 도형 지우기
30개가 넘는 소스파일이 필요한 프로젝트라서 헤더파일 / 상속과 관련된 이슈들이 많이 발생했습니다.
이 프로젝트를 통해서,
객체 지향 프로그래밍 / 디자인패턴 / 클래스 UML 작성의 중요성을 체험했습니다.
반응형
'프로젝트' 카테고리의 다른 글
[Java][프로젝트] Swing으로 GUI 그림판 만들기 (0) | 2022.06.30 |
---|