Skip to main content

2024.03.31의 깨달음

· 2 min read
  • 객체지향적으로 코드를 설계하는 것
    • 굉장히 많은 노력과 시간을 요구하는 일이다. 디자인 패턴은 단순히 상속, 캡슐화, 다형성, 추상화, 등의 기본적인 객체지향 개념을 적용하는 것에서 더 나아가 여러 상황들에 대해 객체지향적으로 디자인하는 방법을 이미 여러 고민 끝에 정리한 개념이다.
  • 옵저버 패턴
    • 여러 객체의 데이터를 일관성 있게 관리할 수 있도록도 할 수 있을 것이고 동시에 여러 객체의 행위를 통제할 때도 사용할 수 있을 것 같다.
    • subject 구현 클래스가 observer 구현 클래스를 관리.
    • 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다 의존성을 정의한다.
  • 데코레이터 패턴
    • 슈퍼 클래스와 데코레이터 클래스들이 공통된 형식의 추상 데코레이터 클래스를 상속 받고(1), 데코레이터들은 메인 클래스의 기능에 추가 기능을 데코레이팅(2) 하는 것이 특징적이다.
    • 데코레이터 패턴을 적용하면 잡다한 클래스가 많아진다는 단점 존재하지만 데코레이터 패턴을 활용해서 만든 API는 사용자가 원하는 행동을 추가로 쉽게 적용할 수 있다.