클래스의 초기 화에서 너무 많은 것을 하려고 하지 마라.
글쓴이: 맨발 / 작성시간: 화, 2006/04/25 - 4:52오후
오랫동안 프로그램을 해오신 프로그래머 분이시라면 나름데로 프로그램에 대한 자신의 원칙이 있을 줄로 압니다.
의외로 그 '개념'이라는 것은 프로젝트 전반에 거대한 영향을 미치죠..
저도 오늘 또 하나 원칙을 세웠답니다.
'클래스의 초기 화에서 너무 많은 것을 하려고 하지 마라.' ..입니다. ^^*
다음을 봅시다..
class Board1 { function Board( $board_id ) { $this->config = $this->GetConfig( $board_id ); $this->PrintBoard( $this->config[skin] ); } function GetConfig( $board_id ) { ... } function PrintBoard( $skin ) { ... } }
아하! 게시판을 출력하는 PHP Class로군요..!!
다른 곳에서 사용 할 때
$board = new Board1( "TEST" );
한 줄이면 간단히 처리 되겠군요.
내친김에 하나 더 볼까요..?
class Board2 { function Board( $board_id ) { $this->config = $this->GetConfig( $board_id ); } function GetConfig( $board_id ) { ... } function PrintBoard( $skin ) { ... } }
function Board( $board_id ) 안에서 GetConfig와 PrintBoard를 둘다 하던 걸 하나로 줄였군요.
사용 하려면..
$board = new Board2( "TEST" ); $board->PrintBoard( $board->config[skin] );
두 줄을 써야 하는 막노동(?)을 해야 하는군요.
필요없는 손까락 노동만 늘어난 걸까요..?!
하지만, 두번째는 이렇게도 가능 하겠군요..!
$board = new Board2( "TEST" ); $board->config[page_size] *= 2; $board->PrintBoard( $board->config[skin] );
덕분에 클래스 하나를 덜 만들어도 되겠네요..
예제가 적합한지는 모르겠지만..
클래스의 초기화에서 너무 많은 것을 하려 하면,
그만큼 범용성이 떨어진다는 사실을 얘기 하고 싶네요.
예..?
위에서는 초기화에서 주는 명령이 단 2줄 뿐이지만..
30줄에 해당하는 명령어가 있고
99데서는 그대로 사용해도 되고 단 1번만 다른 용도로 사용된다면요..?
상속 받으세요!
class ExBoard extends Board2 { function ExBoard( $board_id ) { parent::Board( $board_id ) $this->SomeCommand1(); . . $this->SomeCommand30(); $this->BoardPrint(); $this->PrintBoard( $this->config[skin] ); } }
:)
Forums:
이거 프로그램 코드 부분에 들여쓰기는 어떻게 하는거죠?!
윗글에서 프로그램 코드 부분에 들여쓰기는 어떻게 하는거죠?!
ㅡ_ㅡ); 다른 분들은 잘 만 되어 있두만.. 모두들 엔드nbsp콜론 이라도 다 넣으시는 건가요..?!
제가 여기 이사온지 얼마 안돼서요.......
쿨럭..!
--------------------------------------------
:: 누구보다 빠르게 남들과는 다르게
tab 문자가
tab 문자가 문제입니다. Drupal에서 space 문자는 로 잘 변환해 주는데 tab은 그대로 출력이 되고, 따라서 웹 브라우저가 살짝 무시해서 표시합니다. 불편하시겠지만 tab을 space 문자로 바꾸고 올려주시면 예쁜 코드 표시가 가능합니다-
----
$PWD `date`
$PWD `date`
감사합니다.
훨씬 보기 좋아졌군요.. ㅎㅎㅎ
--------------------------------------------
:: 누구보다 빠르게 남들과는 다르게
지나가다가 딴지 같아서 죄송하지만
지나가다가 딴지 같아서 죄송하지만, 제가 php는 익숙치 않아서 잘 모르겠지만
c++문법으로 다음과 같이 하면 말씀하신 그런 부분은 없을꺼 같은데요.
-------------------------------------
korone.net qt programming site
korone.net qt programming site
댓글 달기