학원 선생이 '서로가 서로를 몰라야한다'라고 말씀하셨거든
이게 캡슐화인지...암튼 엄청 기초적인 부분이니까 답답해도 화내지마셈...
이게 참 무식한 질문인거 나도 아는데...
예를 들어서 Bullet 클래스가 있고 Gun 클래스가 있음.
Bullet은 앞으로 나아가는 Fire 함수를 가지고 있고,
Gun은 키보드 입력을 받을 때 자기가 가지고 있는 Bullet 스택에서 팝하면서 총알을 한발씩 쏘는데
이 발사에 쓰이는 함수에 bullet.Fire()같은 걸 써버리면 이제 Gun클래스는 Bullet 클래스를 명확하게 지목하고 있으니...이러면 안되는거 아님?
근데 애초에 또 시작부터 Gun클래스가 Bullet스택을 가지고 있는 것 부터가 또 좀 그렇지 않나??
그럼 Gun클래스는 그냥 '무언가'의 '어떤 함수'를 호출해야하는건데...이거 너무 아득한것같음...
그렇다고 제네릭을 쓴다고 하면...모든 코드에 다 제네릭을 쓸 수는 없잖음...
도대체 서로가 서로를 몰라야한다는건 어떤 기준인지 궁금함...
의존성이 필요할때는 의존해야지
OOP는 인간이 사고하는 방식과 비슷함. 개체끼리 정해진 수단을 통해서 상호작용은 해야지. 캡슐화는 내부 데이터를 외부에서 직접 못 건드리게 만든다는 뜻이고, 미리 정의한 수단을 통해서는 가능하게 됨.
와 쩐다 이해 한방에 됨 ㄱㅅㄱㅅ
상속이잖냐 - dc App
아들이라고 자기 아버지 재산가치 모르는거 아니잖야 - dc App