왠만하면(should)
인터페이스 이름을 ~er 식으로 지어야 하는데(ex. walker, flyer, swimmer etc.)
난 육지생물, 해양생물, 비행생물?(뭔가 적절한 용어가 안 떠오름)로 나누고 싶음
근데 walker flyer swimmer는 너무 제한적인 느낌이야
난
type 육지생물 interface {
move()
}
type walkable struct{}
func (w walkable) move() {...}
type runnable struct{}
func (r runnable) move() {...}
...
이런식으로 하고 싶었어
근데 처음부터 인터페이스를 walker로 잡아버리면 walkable과 runnable이 이상해짐;
landLiver skyLiver waterLiver 이런식으로 해도 괜찮을까?
근데 liver가 ~에서 사는 ... 으로 해석이 될까?
그냥 landCreature skyCreature 이런식으로 하면 편할거 같은데 convention 지키려고 er을 끝에 붙이려니까 네이밍부터 어렵당
꼭 er 안붙여도 됨 편한대로 하셈
아직 초보라 첨 시작할때 best practice로 습관을 들이고 싶었음. 실제로 er 잘 안붙임??
거의 붙이고 심지어 Execer 같은 이상한 이름도 씀
그런데 그것도 이해가 되니까 (Single Method Interface)니까 하는거고 굳이 목적이 있으면 그렇게 할 필요 없음
아 저런, 그럼 좀더 영어공부를 해서 적절한 동사를 찾아야 겠다
그런데 다 Move라 Mover로 하는게 맞는거같은디
만약 육상동물만의 특정한 메소드가 추가적으로 있다면 (예를 들어서 Walk) MoveWalker 하나 만들어서 Mover 불러오면 되고
요걸 go로 실습해보고 싶었음ㅎ
https://www.google.com/url?sa=t&source=web&rct=j&url=http://pds11.egloos.com/pds/200902/19/66/Inheritance_vs_Composition.pdf&ved=2ahUKEwiF-pW29NbhAhU0yosBHTYCD98QFjAEegQIAxAB&usg=AOv
Mover가 인터페이스고 type Walking, Flying이 move를 구현하면 될듯
생각해보니까 그러네 답변해줘서 고맙다!
근데 어디서 본건지 모르겠는데 composition으로 oop 조물조물할때 ~able 쓰는거같던데 그냥 내 착각인가 아님 다들 그렇게 하는지 궁금함
~er처럼 이름붙이는 방법임 C++에서 실제로 쓰는지는 모르겠음. 난 C++을 잘 안 써서... Java는 걍 클래스처럼 짓고 C#은 IMove 처럼 I를 붙이는 형식임.
여튼 답변 너모 고마워