C# DB 코딩 강좌 2008. 11. 14. 21:43

    오늘의 이야기를 시작해 보자.

    앞서 그린 낙서적 스타일 그림을 보도록 하자.

    clip_image001

    이런게 있다면..

    여기서 우리는 M을 변경해보도록 하자…

    clip_image002

    어쩌라고?를 외칠건데… 여기서.. 저렇게 되기위해서 우리는 머리를 굴려야 하는것이다.

    C에서 M을 호출하는 루틴을 보면..

    clip_image003

    이 둘중에 하나를 적을수 있을것이다.

    위의 코드는 둘다 동일하다.

    예를 들어서

    USB PORT = new 메모리스틱();

    메모리스틱 PORT = new 메모리스틱();

    과 동일하다는 이야기다.

    처음 OOP를 접하는 사람들은 이런걸 잘 이해하지 못하는 경향이 있다.

    예를 다시금 들어보자.

    clip_image004

    에서 우리는 이걸 평소에 하도 많이 사용하니 개념을 가지지 않는데

    clip_image005

    만 존재한다고 생각해 보자.

    저 문자열을 어딘가 다시 사용하기 위해서는 어떻게 해야할까?

    저 문자열이 적혀 있는 어느 공간 또는 주소값을 우리가 인식할수 있는곳에 넣어야 하는것이다.

    실제적으로 tem에는 주소값이 들어가게된다.

    조금 다르게 설명을 해보자.

    clip_image006

    여기서

    clip_image007

    라고만 하면.. 아래의 테스트 클래스에 적어놓은 "test class"가 출력이 될것이다.

    OOP를 처음 접할수록

    clip_image008

    왠지 이렇게 적지 않으면 큰일이 날것 같다고 생각하는게 첫번째 문제이다.

    뒤에 test() 라고 괄호를 적는것은 당신이 호출할 생성자함수를 말하는것이다.

    (매서드와 함수라는 용어를 같이 사용할것이다. 이 둘은 같은 의미이다.)

    단지 우리가 이렇게 적는것은 test란 개체를 나중에 이용하기 위해서 주소값을 가지는것을 의미한다.

    그럼..

    clip_image003[1]

    이 문장에 대해서 다시금 이야기를 해보자.

    인터페이스로 적은것 또한 주소값을 저장하니 크게 문제없이 동일한것이 된다는 이야기다.

    USB PORT = new 메모리스틱();

    메모리스틱 PORT = new 메모리스틱();

    와 마찬가지로..

    USB PORT = new 프린터();

    도 당연하게 이해해주기 바란다.

    우리가 95년도에 처음 windows가 P&P라는 (PLUG & PLAY)란 이야기가 나왔을때 그저 오~~ 라는 생각을 가졌는지 모르겠으나 실제적으로 이것이 가능하게 되는 개념이 지금의 개념이다.

    이미 10년도 휠씬전에 나온개념이고 이 개념덕분에 OOP가 살아있는것이다. (허접한 은닉성같은건 잊어버려라..)

    //-------------------------------------------------------------------

    어찌되었든.. 모듈을 변경하기 위해서.. (그림을 봐라 ms-sql에서 오라클로 변경이 되었다.)

    컨트롤에 적은 코드를...

    clip_image009

    하여간.. 한줄을 바꾸어야 한다는것이다.. (한줄.. ㅠ.ㅠ)

    clip_image010

    앞서 열심히 그림을 그려줬지만.. 이 C라고 적은녀석은 변경하기 싫다는것이다.

    변경이란 다시 컴파일을 해야된다는 이야기 이고 게다가 저렇게 선언한 코드가 매 폼마다 있다고 가정한다면… 그것참 거시기 한것이다. 물론 그렇게 코딩할수도 있고 한곳에다만 적어서 코딩할수도 있을것이다.(역시 소형프로젝트에는 절대적 무용지물인 이야기들이다..)

    그래서 이것을 분기분으로 작성하기도 하자.

    clip_image011

    말하자면 이정도 될것이다.

    이것을 내부에 두는게 아니라… 외부의 클래스로 만들어 두고 그것을 함수로 불러다 사용하자는 것이 이 심플팩토리의 이야기다.

    왜 이렇게 하냐면 앞서 만들었듯이 계속 Excel이라든지 Access라든지 선택사항이 늘어나기 때문에 이 선택사항에 대한 함수만 변경하기 위해서 변경부위를 밖으로 빼자는 이야기다.

    이걸 가지고 일반적으로

    함수형 팩토리 패턴

    또는

    Simple Factory 패턴이라고 한다.

    뭐 말그대로 심풀하고.. 하나의 함수로 이루어질 수준이라서 굳이 설명할것들도 없다.

    마지막으로 위의 이야기가 다 필요없는.. 기본적으로 ms에서 이것까지 지원하도록 만들어 두었다.

    http://mkex.pe.kr/kims/bbs.php?table=Tbl_Lecture_CSharp&query=view&uid=68&p=1

    이 링크의 강좌를 보도록 하여라..

    원본 위치 <http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=18&MAEULNO=8&no=1602&page=1>

'C# DB 코딩 강좌' 카테고리의 다른 글

C#을 이용한 DB코딩 21  (0) 2008.11.19
C#을 이용한 DB코딩 20  (0) 2008.11.14
C#을 이용한 DB코딩 19  (0) 2008.11.14
C#을 이용한 DB코딩 18  (0) 2008.11.14
C#을 이용한 DB코딩 16(실습파일포함)  (0) 2008.11.14
C#을 이용한 DB코딩 15  (0) 2008.11.14
C#을 이용한 DB코딩 14  (0) 2008.11.14
C#을 이용한 DB코딩 13  (0) 2008.11.14
C#을 이용한 DB코딩 12  (0) 2008.11.14
C#을 이용한 DB코딩 11  (0) 2008.11.14
posted by 삶의여유로움
: