객체지향의 사실과 오해
챕터 4,5 읽기reduce 메서드는 두가지가 있다
reduce( initialResult: Result, nextPartialResult: (Result, Element) throws -> Result)
이건 initialResult
라는 이름으로도 알 수 있듯이, 초깃값을 지정해 줄 수 있고, nextPartialResult
라는 이름의 매개변수로 클로저를 전달받는다. 모든 순회가 끝나면 initialResult
는 reduce의 최종 결과값이 된다.
reduce(into: Result, updateAccumulatingResult: (inout Result, Element) throws -> ()
이 메서드는 컨테이너를 순환하며 클로저가 실행되지만 따로 결과값을 반환하지 않는 형태이다. inout 매개변수를 통해 초깃값에 직접 연산을 실행한다.
updateAccumulatingResult
의 첫번째 매개변수를 inout 매개변수로 사용한다. 두번째 매개변수는 reduce가 순회하는 컨테이너의 요소다. 모든 순회가 끝나면 into
가 reduce의 최종 결과값이 된다.
beverages.filter({ $0 == beverage }).count
어떤 객체의 행동(역할)을 정의할 때, 나는 주로 현실세계를 바탕으로 만들 생각을 했었다. 근데 오늘 피드백 받은 내용으로는 우리가 만드는 객체는 무생물이지만 생명도 있고 책임도 있고 기능을 하니까 현실 세계와는 다르고, 객체는 데이터와 기능을 함께 가지고 있으므로 매우 관련이 높은 것들만 응집도 있게 갖고 있어야 한다
고 했다
내가 현재 만들고있던 객체들 중에서는 그 역할을 부여받기에 그나마 근접한 놈이라고 생각해서 이야기했는데, 생각해보니까 미리 만들어진 타입도 있었다(Date).. 그래서 그것을 확장하여 썼다 ㅎㅎ 기억할 건 매우 관련이 높은 것들만 응집도 있게 갖고 있기
객체지향의 사실과 오해
책을 읽으면서 계속 역할, 책임, 협력에 관한 이야기가 나오는데 어떤 메시지를 보낼 것인지, 어떤 일을 시켜서 역할과 책임을 부여할 것인지 나오는데 아직 중반밖에 안읽어서 그런가.. 지금 하고 있는 프로젝트에 곧바로 적용하기에 쬐끔 어렵달까!
내일 프로젝트에 상속부분 다시 보면서 책에서 본 일반화/특성화와 연관지어 생각해봐야겠당
객체지향의 사실과 오해
챕터 6 읽기사파리가 아예 켜지질 않았다.. 캐시 지워보고 재부팅도 여러번 해봤는데 안돼서 마지막으로 맥os 업데이트 하니까 그제서야 잘 되더라...
사파리 안될때, 크롬으로 할랬는데 브라우저 하나 바꼈다고 뭔가 하기 싫대..? 집중이 안되더라고...
왜 안되지 고민 + mac os 업뎃 하느라 시간만 흘러흘러.......😞 힝
App LifeCycle 봐야하는데 딱 그부분만 보면 얼마 안되는데, 앱이 시작되면 메인 이벤트 루프에 어떻게 할당되고 어쩌고까지 보려니까 약간 마음의 준비가 필요해.,,서 쬐끔 미루게되네 ^_^ 낼은 꼭 볼꺼.,..
저는 크롬애용합니다! 저도 델마처럼 알고리즘도 정리해봐야겠어요!👍