이름: yong27 (yong27@nownuri.net) ( 남 )
홈페이지: http://biohackers.net
2002/4/11(목) 01:18 (MSIE5.5,WindowsNT5.0) 218.147.213.84 1024x768
Object oriented programming  
최근 프로그래밍 경험이 많아지면서 OOP에 대한 감이 새록새록 와닿고 있다.
얼마전 풀었던 EightQueenProblem 이랑 ( http://biohackers.net/wiki/EightQueenProblem ), 하루한시간씩 투자하고 있는
Design patterns 스터디를 통해서 아싸~ 재밌게 OOP를 익히고 있다.

OOP를 잘 이용하기 위해선, 문제를 풀고자 할때
그 문제속에 등장하는 객체들을 잘 선별하고, 그 객체에게 책임을 떠넘기는거다.

가령, reverse complement를 구현한다 하면, 일단 보이는 객체는 서열이다.
그리고 그 객체가 하는 대표적인 일은 자신의 서열을 뒤집는거다.
따라서,

Class Seq:
def reverse(self):
self.seq.reverse()

따위로 구현될 수 있다. 뒤집는건 그 객체가 하는일이다.

또 느끼는 점 한가지. June씨도 강조하는 것이기도 한데
리팩토링을 하다보면 자동적으로 Design patterns가 나타난다는것...
중요한것은 incremental development이란얘기... 음미해 볼만 하다.

생물정보학문제를 풀면서 과연 OOP가 도움될까 하는 의구심이 있을 수 있으나,
이건 문제를 바라보는 또다른 시각을 제공할 수 있다고 하니 그게 장점일 수 있고,
(Procedual 이나 OO 나 모두 상호 변환가능하다고 하니..)
나중에 세포모델링같은 임무가 주어진다면 요긴하게 쓰일것 같다.
다 떠나서, OOP는 프로그래밍의 추세다 보니, 익혀서 손해볼건 없다.


  이름   메일   관리자권한임
  내용 입력창 크게
                    답변/관련 쓰기 폼메일 발송 수정/삭제     이전글 다음글         창닫기