BLOG main image
분류 전체보기 (92)
Cocoa Touch (11)
Cocoa (10)
Objective-C (13)
Swift (6)
Development (11)
Tools (11)
Books (7)
etc (21)
Application release (1)
Document Project (1)
106,258 Visitors up to today!
Today 16 hit, Yesterday 5 hit
daisy rss
tistory 티스토리 가입하기!
2014. 4. 25. 13:49

일전에 Objective-C의 property dot notation이 디미터의 법칙을 어기기 쉽게 만드는 특성이 있다고 (오버스럽게) 쓴 글이 있었는데 조금 더 이야기를 해볼 만한게 있어 포스팅 합니다.


일단, 그 글을 안 읽으신 분은 읽었다고 계속 이야기를 진행합니다.


하지만 디미터의 법칙은 클래스에만 적용되고 자료구조에는 적용되지 않는다(Clean Code)는 말이 있습니다.

즉 이 말을 Objective-C에 적용하자면 공개된 자료구조는 "."으로 쭉 붙여써도 괜찮다는 말 처럼 들립니다.

약간의 논란의 여지가 있겠군요. 여기서 "자료구조"라는 말의 해석에 따라 이야기가 많이 달라질 듯 합니다.


여기서 말하는 자료구조란 거의 C struct같은 느낌일텐데요, Objective-C를 제대로 쓰게되면 struct대신 Class를 만들게 될것이고 맴버 변수를 모두 public으로 하거나 property로 처리하게 되겠지요.

이런 상황이라면 이 객체는 거의 자료구조라고 판단해야 할듯 합니다.

하지만 이것을 일반 클래스와 구분 짓기는 쉽지 않은듯 하고요, 실제로 그렇게 자료구조 표현으로만 Class를 잘 만들지 않게 되지요. (하지만 그렇게 하는게 좋다고는 하는군요!!)

결국 자료구조와 클래스의 짬뽕구조가 되어버리는데 이것이 안좋다고는 합니다만, 데이터와 로직을 분리하다보면 또 수많은 클래스들이 만들어지겠지요.


이래저래 "이것이 정답이다!"라고 확신이 서지 않는데요, 이런 부분에 대해서 경험 많은 분들은 어떤 조언을 해줄지 궁금하네요. 이럴 땐 정말 비행기표 끊어서 밥 아저씨를 만나러 가보고 싶어지는군요.


하지만 여기서 중요한건 그래도 여전히 property를 접근하기 위해서 "."을 쓰는건 여전히 마음에 들지 않는답니다. 특히  "."으로 chain을 만들어놓은 코드를 보면 돌아버릴 것 같습니다.

Name
Password
Homepage
Secret