본문 바로가기

知者不言(지자불언) 도덕경(道德經) 제 56장 知者不言(지자불언) 아는 자는 말하지 아니하고 言者不知(언자부지) 말하는 자는 알지 못한다 塞其兌(색기태) 입을 닫고 閉其門(폐기문) 문을 닫으며 挫其銳(좌기예) 날카로움을 무디게 하고 解其紛(해기분) 엉킴을 풀고 和其光(화기광) 빛을 부드럽게 하고 同其塵(동기진) 티끝과 같이 한다 是謂玄同(시위현동) 이를 현동이라 한다 더보기
소프트웨어에서의 추상화 그리고 상속,다형성,캡슐화 써니님의 추상화에 대한 글에 제글이 인용되어 있기에 다시한번 제 생각을 정리해야할듯 해서 글을 씁니다. 1. 추상화는 무엇? 이전의 글(추상화와 실용주의)에서 언급했듯 추상화란 인간의 본능이자 특성입니다. 우리를 둘러싼 복잡한 환경에서 좀더 현명한 판단을 위해 사물을 단순화 시키는 것을 말합니다. 우리는 추상화를 통해 사물의 특성을 뽑아내고 불필요한 부분을 제거합니다. 하지만 이런 추상화를 하는데 있어 중요한것은 하위 개념을 포함하는 개념을 추출하는데 있습니다. 2. 객체 지향이란? 객체지향이란 아래의 두가지 측면으로 생각해볼수 있습니다. a. 철학적인 측면 플라톤의 이데아론에서 말하듯 우리를 둘러싼 모든 것들은 이상의 것(이데아)에서 파생한것(객체)이라 보는데서 클래스와 인스턴스의 관계를 나타낼수가 있.. 더보기
정말 다형성(서브타입)이 IF를 줄일수 있을까? 얼마전 강규영님의 글 "OOP란 조건문(if)을 줄이는 것"을 보고 정말 서브타입 다형성(subtype polymorphism) 이 if,else를 줄일수 있는가 생각해보았다. 예를들면 아래와 같은 클래스가 있다고 생각을 해보자. 식사 { 밥() { if (아침) { return 빵과우유; } else if (점심) { return 짜장면; } else if (저녁) { return 삼겹살; } } }아침 점심 저녁을 비교하는 세개의 IF문이 존재한다. 이 클래스를 아래와 같이 Interface를 이용해 분리를 해보겠다. // 인터페이스 interface Food { eat(); } // 오전을 나타내는 클래스 class Morning implements Food { eat() { return 빵과우유;.. 더보기