뭐라해야되지 디자인 패턴이라고 해야하나
조금 다른건가..
아무튼 사실 뭐 자바할때도 그렇고 class ~~ { } 하면서 객체지향 문법은 쓰지만
이게 정말 논리적으로 객체지향이 맞는지..
뭐랄까 어디선가 들은바로는 객체지향에서는 쪼갤수있는 최대한을 클래스로 다 쪼개서 관리하는게
객체지향이라는거라고도 하는데.. 말하자면 \'조립식 프로그래밍\' 을 말하는거같은데..
물론 기업마다, 프로젝트마다, 팀마다 다들 다르긴하겠지만 실무뛰는 형들의 생각을 듣고싶어요
형들이 생각할때 객체지향(단순한 클래스, 메소드 이러한 기능적인 부분이 아닌)적으로 프로그래밍 한다는건
어떤것을 의미하는지 듣고싶어영
실무를 안뛰어서 패스
어떤것을 의미하는지 듣고싶은지가 뭔가 말이 좀 이상한게.. 각 객체끼리 영향을 안받고 코딩해야 중복코드나 에러를 찾아내는 부분에서 훨씬 수월할 수 밖에 없고 보수도 편히 할 수 있지 ㅇㅇ 나한텐 이런게 당연한거라고 생각이 드는데 객체지향적으로 프로그래밍 한다는건 어떤의미인거같아? 라는 말이 흠 안와닿음
흠.. 형이라면 HTTP로 naver.com에 연결한 뒤 소스코드를 받아오는걸 객체지향으로 구성한다면 어떻게 구성하실건가영?
그냥 socket->gethostbyname->connect->send(HTTP header)->recv->출력 항상 이렇게만짜오던걸 \'객체지향답게\' 구성하려면 어찌해야되는지.. 감이안잡혀서그래영
소켓 클래스를 만들고 메소드로 socket, connect, send, recv 등을 넣어놓고.. 대충 이렇게 생각해봐도 버퍼나 gethostbyname 하는 이런부분은 어떻게 만들어줘야좋을지ㅠㅠ
음 socket은 생성부분만을 가지고있는 BaseSocket이라는 클래스를 만들고 GetHostByName 이나 Connect Send Recv이런 함수들은 class화 시킨다음에 내가 최종적으로 main 에서 볼때 CodeRecvSocket 이라는 클래스로 저 각자의 행동을 하는 클래스들을 모두 상속 받아서 동작을 시행 하는 코드로 만들거 같은데
차이는 댓글에서 보이지? 클래스를 만들고 메소드를 넣는게 connect send recv가 아니라 connect send recv를 클래스화해서 저걸 상속받아서 내가 쓰고싶은 형태로 바꾸든(가상함수로) 해서 저것들을 상속해서 쓰는거지. 버퍼같은경우에는 Recv나 Send 클래스에서 따로 가지고있는걸로 생각하게 되고 gethostbyname 이건 내가 안써봐서 모르겠네 ㅋ
Interface클래스를 기능별로 제작해서 그걸 상속해서 자기가 변형해서 쓰든 그냥 쓰든... 그게 객체지향이 아닐까
함수를 클래스화시킨다는게 어떤식이징.. class Send{ public: Send(SOCKET ~~){} }; 이런식으로 생성자에 함수인자만 받아서 함수한개만 호출하는 그런의미?
태클잠시 ㅇㅇ class testSend 이런식으로 만들어지지 이름 그대로 쓰면 안될껄 .. ㅇㅇ ㅇㅇ 그런의미 인터페이스 클래스에 대해서 한번 알아보셈 ㅇㅇ
예를들어 Recv기능을 넣는다면 Receivable 이라는 Interface Class를 만들어서 virtual void Recv() = 0 이런식으로 순수가상함수를 만듬
그걸 상속받는 Receiver 라는 class를 만들어서 Receivable 클래스를 상속받음 그리고 가상함수를 정의함 Recv() 를
이제 Receiver라는 클래스를 상속받으면 그 객체는 Recv라는 기능을 사용할수있겠지 ㅇㅋ?
이렇게 기능 별로 나눠서 내가 쓰고 싶은 기능들을 어떠한 객체에 붙였을때(상속했을때) 그기능을 할 수 있게 하는것 . 그것이지않을까 . 몰라나도 뉴비라서 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
아직도 모르겠는부분이 많지만 많은 도움이됐어영 고마워여 횽
책에 나온데로만 안하면 됨....자동차 같은 예제 처럼 클래스 설계하다보면 똥 됨...처음부터 완전한 클래스를 만들 생각을 버리고 겸허한 마음으로 일단 동작하는 클래스 만든 다음 수정하삼..