갑자기 개 쓰잘떄기없는 고민이 들기 시작했는데
농부
젖소
우유
이렇게 있을때 농부가 젖소를 짜서 우유를 얻는다 이걸 클래스로 만든다면
Milk getMilk() 함수를 클래스중 농부에 넣어야 하냐 아니면 젖소에 넣어야 하냐
Farmer.getMilk()
MilkCow.getMilk()
뭐가 나음?
갑자기 개 쓰잘떄기없는 고민이 들기 시작했는데
농부
젖소
우유
이렇게 있을때 농부가 젖소를 짜서 우유를 얻는다 이걸 클래스로 만든다면
Milk getMilk() 함수를 클래스중 농부에 넣어야 하냐 아니면 젖소에 넣어야 하냐
Farmer.getMilk()
MilkCow.getMilk()
뭐가 나음?
trait MilkExtract 퍄.. - dc App
농부
누가 어느것에 종속될지를 고려해봐야지
저 정보만으로는 뭐 고를거같음?
농장모듈 만들고 싶긴한데 둘중에선 농부
저라면 Milk MilkSqueezer.squeeze()
이건 정말 어려운 문제네요
클래스를 안 쓰는게 좋겠어요
클래스를 안쓰면 어떻게? 메인클래스에서 milk 리턴되게끔?
MilkSqueezer : Squeezer<Milk>, Squeezer<T> { Person Actor, Animal Target, T Squeeze() }
Farmer: Person, MilkCow: Animal... 물론 그정도로 많은 일 하는게 아니면 그냥 Generic 다 갖다버리고 MilkSqueezer만..
아무튼 Data class에 action 스까면 나중에 고생한다고 배웠습니다
농부는 찌찌문지르기 인터페이스 + 문지르기Strategy 를 만드는 빌더를 리턴하는 메서드를 갖고 빌더에서는 농부에 대한 정보를 저장하구요 소는 우유발싸 인터페이스에 아까 만든 문지르기Strategy 빌더를 받는 메서드를 만들고, 여기서 넘어온 빌더를 통해 문지르기Strategy 객체를 마저 완성하고 이걸 이용해서 우유를 짜면 될 것 같아요
님 말하는 거 존나 웃기네요
그러면 우리는 소랑 농부의 직접적인 의존없이 젖을 짤 수 있어요 농부를 대통령으로, 소를 고양이로 바꿔도 젖을 짤 수 있다는 얘기죠
우유 담아야하는데 이게 유리로 만든 우유병인지, 플라스틱 통인지, 종이로 만든 우유곽인지 다 다르니까 이것에 대한 다형성을 확보하기 위해 우유 포장에 대한 클래스를 만들고 이것에 대한 팩토리를 만들어야해요
아 그래서 우유 얻으려면 농부한테 가야함 젖소한테 가야함?
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
그걸 정하는 순간 의존관계가 생길 수 있으니 둘을 인자로 받는 멀티메서드를 구현하는게 가장 깔끔할 것 같군요
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
farmer.milk(cow) 영어 어순대로
farmer_get_milk_from_milkcow()
아니면 farmer_get_milk_from (animal);
#!/usr/bin/rubyclass Farmer def get_milk_from(milkcow) milkcow.get_milk endendclass Milkcow def get_milk endendfarmer = Farmer.newmilkcow = Milkcow.newfarmer.get_milk_from(milkcow)
그냥 다 따로 분리해서 적절하게 메소드 집어넣으면 안되냐....
글만봐선 잘 이해가 안되는데 대충이라도 예시점
농부가 소를 소유하거나 빌린 다음에 소의 getMilk 메서드를 호출하면 된다
당연히 소지 애초에 멤버변수 milk는 소한테 있을거아냐
나중에 초콜렛우유 바나나우유 종류별로 생긴다해도 소한테 영향가는거 없잖아 소가 바나나우유 바로 생산하는것도 아닌데
대부분은 농부인듯한데 ㄷㄷ
그냥 농부가 농부의 젖을 짜면 안될까 - dc App
깔끔한건 액터 모델을 도입하는게 깔끔하겠지만 일반적으론 농부일듯