예전부터 계속 궁금했었던 게 클래스를 생성하는 게 내부의 데이터와 그걸 다룰 수 있는 함수의 집합으로써 사용하기 위함으로 알고있는데
멤버 변수가 없는 단순히 함수만을 내재한 클래스, 가령 팩토리 패턴 같은 건 클래스로 구현하는 이유가 궁금함
단순히 객체를 만들어서 보내기 위함이라면 동일한 작용을 하는 단일 함수를 만들어도 되지 않나 싶은데
템플릿을 사용하는 것도 아니고 어디 상속 시킬 것도 아닌데 클래스로 구현하는 이유를 알려줬으면 함
몇 몇 디자인 패턴들은 클래스를 사용하는 이유를 알겠는데 몇몇 패턴들(대표적으로 팩토리 패턴) 같은 건 진짜 왜 그런지 모르겠더라고
다른 패턴에 얽힐때 팩토리객체로 만드는게 좋아서??
그리고 이리저리 만들다 보면 팩토리자체도 “속성” 이 필요하면 좋을수도 있겠지 “속성” “행위” 묶어서 클래스로 짜고 객체 만들자너
그 부분은 내가 좀 더 실력이 오르고 이것저것 짜봐야 알 거 같긴 한데 특정 방향성을 가진 함수들의 묶음(가령 파일 입출력 관리) 같은 걸 클래스로 다룰지 네임스페이스로 해야할지 아직 갈피를 못잡아서 클래스와 네임스페이스의 방향성에 대해서 많이 고민해보는 중이었음
dependency injection
의존성 주입하는 의도는 알겠는데 그게 왜 클래스를 통해 구성하냐는 것인데수
OOP의 관점에서 프로그램의 최소 단위를 오브젝트로 봐서 그런 것 같음. 내부 상태가 없는 클래스는 정말 클래스로 만들 필요가 있나 싶긴하지. 네임스페이스로 묶고 보통의 함수를 써도 되니까
예전에도 비슷하면서도 다른 질문글을 올리긴 했는데 Allocator같은 클래스는 컨테이너 클래스의 템플릿 인자로 들어가니까 클래스로 만드는 이유를 납득할 수 있었는데 단순 객체를 생성해서 반환하는 함수만 들어가있는 클래스 같은 건 그냥 비멤버 함수로 놔둬도 되지 않나? 싶어서 글 올려봤음
보통 할 줄 아는게 클래스 밖에 없는 갓바 기준이라
자바는 네임스페이스가 없구나 그건 몰랐네..
자바 예제만 봐서 클래스를 만드는데 뭔가 특별한 이유가 있다고 생각했었음 ㄳㄳ
디자인 패턴은 그 언어의 한계나 언어에서 제공하지 못하는 것들 때문에 만들어진 일종의 idiom 이라는 관점이 있음.
자바에서 디자인 패턴을 열심히 썻는데, 하필 자바는 클래스가 강제임 - dc App
뭐 정답은 아니지만 Abstract Factory같이 Factory도 상속시키기도 하고.. 사실 수학함수같이 pure 함수 모아놓는건 사실 namespace의 역할이 더 맞긴 하지. 내가 Math.Pow와 MyMath.Pow를 한 어플리케이션내에서 flexible하게 스까쓸거 아닌담엔..
클래스로 안만들어도 됨. 대신 자바같은 환경에서는 클래스는 뭔가 접합하기에 좋아. 상속도 가능하고, composition도 가능하고, 생각할 수 있는 범위를 한정할 수 있는 용도로도 좋고. JS같은 경우는 오히려 클래스로 하는것보다 님말대로 함수대로 의미단위를 나누는게 편할때도 많음.
UML 코드로 똑같이 옮길 수 있으면 클래스건 뭐건 상관없음
예전에 저거 함수형으로 해보겠다고 DI를 전부 리더모나드로 처리해서 짜본적있는데 ioc 컨테이너 지원하는게 없어서 걍 때려치고 클래스로 쓰고 그랬는데
많이 쓰는 이유가 있는듯 언어 타는것도 크고
행동과 상태로 구성되는게 객체고, 이를 구현하기 위해 편한 도구 중 하나가 클래스인건 맞지만, 그렇다고 클래스의 절대적 의무가 객체 구현인건 아님 자바마냥 모든 것들이 클래스 안에 있어야된다든가, 그건 아니더라도 클래스가 많은 편의를 제공한다면 여러가지 용도로 편하게 사용한다고 해서 이상할게 없음
자바라서