유명한 건데 그냥 중복된 개념 상속으로 구현할지 아니면 그대로 받아서 구현할지에 대한 설계방식임
익명(220.70)2022-04-22 18:37
답글
중복있다고 상속으로 받으면 직관적으로도 부모랑 자식으로 생각될 문제가 있고, 다중 상속이 존재한다면 코드를 갈아서 바꿔야 됨(그리고 이렇게 해도 생기는 문제는 클래스 명시적으로 상속이 필요없는 친군데 나중에 자식 클래스 떄문에 어쩔 수 없이 상속을 받아야 되는 문제가 있음)
익명(220.70)2022-04-22 18:39
답글
따라서 컴퍼지션을 사용해라 라는게 결론임
익명(220.70)2022-04-22 18:39
답글
다중 상속은 cpp는 허용해줘서 두번째 이유는 줄어들기는 하겠지만 자바는 class를 통한 다중상속이 불가능함(is-a관계)
익명(220.70)2022-04-22 18:40
답글
또 그렇게 늘려지면 class도 너무 많아져서 불필요할듯
익명(220.70)2022-04-22 18:42
답글
PHP 에는 트레이트 있음
익명(8.37)2022-04-22 18:45
답글
아니 컴포지션은 필요하지.. 강의는 안 듣는 사람인데 따른 건 나뉠 수 있어도 저렇게 다른 class로 참조하는 건 필요해.. IOC,DI 개념을 상속받아서 쓸 수 있는데 누가봐도 부모랑 자식 클래스 입장이아니잖음(Service,Repository) 이런 걸 쓰지 말라고 하는거야.. 당연하게 들릴 수도 있는데 나도 처음 공부할 때 저런거 의문이 들었음 물론 부모랑 자식 class가 상속 관계에 있으면 그렇게 하는게 맞아 추가로 인터페이스를 쓰지말라고 했다는 거는 출저가 궁금하네.. 인터페이스는 쓰는게 맞아 지향해야될 코드라고 생각해(물론 필요없는 확장성은 과감히 제거해야지.. 그렇게 보면 cpp랑은 또 다른 것 같긴해 cpp는 auto 타입 같은 걸 추구하는 코드도 있거든
익명(220.70)2022-04-22 18:55
답글
cpp 에서는 int타입 boolean타입 이런거 있으면 나중에 코드 다 바꿔야 될 수 있으니까 auto 타입으로 박아넣고 시작하는 경우도 있다고 교수님께 들었는데, 이건 패러다임에 대한 얘기겠지.. 잘 모르겠는데 게임쪽은 데미지 계산 같은 걸 int 대신 소수점으로 바꿔버리거나 이런게 빈번해서 그런듯.. 웹은 그냥 값 바꾼다고 해봐야 구매 판매 이런 원 단위니까 int로 계산하고
익명(220.70)2022-04-22 18:57
답글
말씀 하신 것 다 무슨 말씀으로 하셨는지는 알 것 같은데, 윗줄 같은 경우는 표현의 어려움때문에 햇갈리게 말씀하신 것 같고, 아랫줄 같은 경우는 간혹 그냥 Iterator 쓰는데 그걸 굳이 반복자 패턴이라느니 어려운 걸 그냥 다른 함수에서 쉽게 분할해서 보이는 걸 파사드 패턴이라느니.. 이러면서 굳이 필요없는 의미를 부여해서 쓸모 없다는 식으로 말씀하셨던 것 같아
익명(220.70)2022-04-22 19:08
답글
그 강사님 유료 강의는 안들어봤는데 아마 무료강의라 대충 설명하시고 끝내신 것 같아.. 아마 유료 강의에 해당 자료가 있지 않을까 싶네.. 그 강사님이 말씀하신걸 자세히 살펴보면 확장성에 대한 얘기인 것 같아서.. 한 클래스만 구현하는 인터페이스면 쓰지말라는 얘기라기보단.. 좀 다른 얘기긴해
익명(220.70)2022-04-22 19:11
답글
내가 거기에 있는건 무료 강의다 라고 짐작하는 걸 수도 있는데, 설명이 너무 단순화해서 오히려 잘못된 내용에 가까워 보일 수도 있어서..
익명(220.70)2022-04-22 19:12
답글
게임쪽 근무하시는 분이면 사용자의 요청이나 롤 같이 서버가 올라갈 때 마다 자주 바뀌는 경우면 그럴 수 있다고 생각해.. 저거 보면서 드는 생각이 si갈 때도 인터페이스보다는 구현체를 두고 코딩하는게 맞는듯.. 게임할 때 캐릭터가 가지고 있는 스킬이 다 바뀔 수도 있고, 버프같은 경우도 시간 버프 범위 이런게 계속 바뀔 수 있으니까..
해당 댓글은 삭제되었습니다.
유명한 건데 그냥 중복된 개념 상속으로 구현할지 아니면 그대로 받아서 구현할지에 대한 설계방식임
중복있다고 상속으로 받으면 직관적으로도 부모랑 자식으로 생각될 문제가 있고, 다중 상속이 존재한다면 코드를 갈아서 바꿔야 됨(그리고 이렇게 해도 생기는 문제는 클래스 명시적으로 상속이 필요없는 친군데 나중에 자식 클래스 떄문에 어쩔 수 없이 상속을 받아야 되는 문제가 있음)
따라서 컴퍼지션을 사용해라 라는게 결론임
다중 상속은 cpp는 허용해줘서 두번째 이유는 줄어들기는 하겠지만 자바는 class를 통한 다중상속이 불가능함(is-a관계)
또 그렇게 늘려지면 class도 너무 많아져서 불필요할듯
PHP 에는 트레이트 있음
아니 컴포지션은 필요하지.. 강의는 안 듣는 사람인데 따른 건 나뉠 수 있어도 저렇게 다른 class로 참조하는 건 필요해.. IOC,DI 개념을 상속받아서 쓸 수 있는데 누가봐도 부모랑 자식 클래스 입장이아니잖음(Service,Repository) 이런 걸 쓰지 말라고 하는거야.. 당연하게 들릴 수도 있는데 나도 처음 공부할 때 저런거 의문이 들었음 물론 부모랑 자식 class가 상속 관계에 있으면 그렇게 하는게 맞아 추가로 인터페이스를 쓰지말라고 했다는 거는 출저가 궁금하네.. 인터페이스는 쓰는게 맞아 지향해야될 코드라고 생각해(물론 필요없는 확장성은 과감히 제거해야지.. 그렇게 보면 cpp랑은 또 다른 것 같긴해 cpp는 auto 타입 같은 걸 추구하는 코드도 있거든
cpp 에서는 int타입 boolean타입 이런거 있으면 나중에 코드 다 바꿔야 될 수 있으니까 auto 타입으로 박아넣고 시작하는 경우도 있다고 교수님께 들었는데, 이건 패러다임에 대한 얘기겠지.. 잘 모르겠는데 게임쪽은 데미지 계산 같은 걸 int 대신 소수점으로 바꿔버리거나 이런게 빈번해서 그런듯.. 웹은 그냥 값 바꾼다고 해봐야 구매 판매 이런 원 단위니까 int로 계산하고
말씀 하신 것 다 무슨 말씀으로 하셨는지는 알 것 같은데, 윗줄 같은 경우는 표현의 어려움때문에 햇갈리게 말씀하신 것 같고, 아랫줄 같은 경우는 간혹 그냥 Iterator 쓰는데 그걸 굳이 반복자 패턴이라느니 어려운 걸 그냥 다른 함수에서 쉽게 분할해서 보이는 걸 파사드 패턴이라느니.. 이러면서 굳이 필요없는 의미를 부여해서 쓸모 없다는 식으로 말씀하셨던 것 같아
그 강사님 유료 강의는 안들어봤는데 아마 무료강의라 대충 설명하시고 끝내신 것 같아.. 아마 유료 강의에 해당 자료가 있지 않을까 싶네.. 그 강사님이 말씀하신걸 자세히 살펴보면 확장성에 대한 얘기인 것 같아서.. 한 클래스만 구현하는 인터페이스면 쓰지말라는 얘기라기보단.. 좀 다른 얘기긴해
내가 거기에 있는건 무료 강의다 라고 짐작하는 걸 수도 있는데, 설명이 너무 단순화해서 오히려 잘못된 내용에 가까워 보일 수도 있어서..
게임쪽 근무하시는 분이면 사용자의 요청이나 롤 같이 서버가 올라갈 때 마다 자주 바뀌는 경우면 그럴 수 있다고 생각해.. 저거 보면서 드는 생각이 si갈 때도 인터페이스보다는 구현체를 두고 코딩하는게 맞는듯.. 게임할 때 캐릭터가 가지고 있는 스킬이 다 바뀔 수도 있고, 버프같은 경우도 시간 버프 범위 이런게 계속 바뀔 수 있으니까..
그 사람 말도 맞고 님 말도 맞는 것 같아.. 매일 코딩 공부나 해야될듯