[메모] 객체지향 디자인

Fuji ㅣ 2023. 2. 18. 23:54


객체지향 디자인시 유의사항

  • 기능적으로 의미 있는 관계에 따라 클래스를 구성한다.
  • 공통 기능을 묶어 베이스 클래스로 뽑아내어, 코드를 재사용하기 쉽게 한다.
  • 공통된 기능이 있다면 그것을 묶어서 위 계층의 베이스 클래스로 만들어 묶는 것이 좋다.
  • 디자인 초안을 미리 만들어서 확인해보자.
  • 부모가 추상 클래스가 아니라면 부모의 기능을 과도하게 오버라이딩하는 파생 클래스를 만들지 말자.


리스코프 치환법칙(LSP; Liskov substitution Principle)

어떠한 행위 및 동작을 특별히 하지 않아도 베이스 클래스 대신 파생 클래스를 사용할 수 있어야 한다는 원칙.

 

믹스인 클래스(Mixin; 첨가 클래스)

이 클래스가 할 수 있는 일, '~도 할 수 있다.'라고 답하는 역할을 하는 클래스이다. is-a 관계를 완전히 구현하지 않고도 기능을 추가할 때 사용한다. (ex. 폴더 아이콘 = 클릭, 드래그, 이미지 세 가지 기능을 추가해 만든 믹스인 클래스)

 

인터페이스 디자인

인터페이스를 디자인할 때는 반드시 미래에 사용할 일도 고려하며 만들어야 한다. 또한 본래 의도와 다른 용도로 활용될 가능성도 고려한다. 최악의 상황은 필요한 기능이 나타날 때마다 추가하면서 인터페이스가 엉망이 되는 것이니 주의하자.

 

String_view

스트링 뷰는 5장을 참고하자