🧐 🤔 컴퓨터 옆 메모장 🙄 😙

전략 패턴 Strategy Pattern

2024. 3. 19. Kim Evergood이가 씀

내가 이해한 게 맞다면;

이건 진짜 별 거 아니고

그냥 동작을 개체화한 것이다.

Car.move를 수정하고 싶은데
Car.move를 수정하면 안 되니까
Car.setHowToMove( HowToMove )를 만들어놓고
Car.move에서 HowToMove.move() 하는 게 해법이라고 하고 있다.

move를 수정하고 싶은데 move를 수정하면 안 돼?????
왜 이런 난리를 치느냐?

고전적인 객체지향에서 동작이란 객체의 내부에 고정적으로 착 붙어있는 메서드이니까.
객체지향의 태생적 특징을 벗어나려고 발버둥치는 똥꼬쑈!

윽… 그… 있자나. 이런 게 디자인패턴으로서 존재한다는 거 자체가
이게 중요하게, 자주 필요하면서도 이걸 주요 언어에서 직접 지원하지는 않는다는/않았다는 뜻이다.
모든 걸 다 지원하는 언어같은 걸 꿈꾼 건 아니지만; 고작 "함수 교체하기" 하나 하자고 이 난리 치는 게 걍 웃프다.

사람들은 부랴부랴 함수를 대상으로 취급하기 시작했다.
요즘 나오는 언어들 보면 다들 함수가 일급객체라고 그런다.
자바에도 ->랑 ::가 생겼다.

염병

728x90

카테고리 다른 글