본문 바로가기
728x90

객체지향6

객체지향의 근본 조건 1. 상속(Inheritance) 대부분의 객체지향을 공부한 사람들은 상속을 하면 코드를 재활용할 수 있다는 것을 알고있다. 하지만 단순하게 상속을 코드를 재활용하는 데에만 사용한다면 좋은 코드를 작성할 수없다. 객체는 속성과 메서드를 가진다. 따라서 객체지향에서 상속은 부모 클래스의 속성과 메서드를 자식 클래스가 물려받은 것이다. 아리스토텔레스는 기존의 분류 계층에서 새로운 하위 계층이 생성될 경우, 이 하위계층의 특징은 기존 상위 계층의 특징을 기본적으로 소유함과 동시에 자신만의 특징을 추가할 수 있다고 정의했다. 따라서 어떤 분류에 속하는 다른 객체가 어떤 특징을 가지고 있다면 그 분류와 하위 분류에 속하는 다른 객체도 그 속성을 가지고 있을거란 추론이 가능하다. 상위에 위치한 분류 계층을 하위 분.. 2021. 3. 6.
객체지향 정의와 목표의 전환 1. 기능 중심의 프로그래밍 개발을 하게 되면 고객과 개발자의 주요 관심사는 기능이 된다. 물론 기능 구현은 중요하지만 유연한 소프트웨어와 빌드 자동화 같은 개발환경 역시 중요한 요소이다. 하지만 많은 개발자들은 오직 구현에만 신경을 쓴다. 기능을 빠르게 구현하는것도 중요하지만 개발자라면 더 좋은 소프트웨어를 만들기 위한 관심을 갖고 적절한 노력을 추구해야 한다. 기능 중심 개발을 코드 품질 저하를 야기한다. 기능 중심적 코딩을 하게 되면 유지보수, 확장성 등을 고려하지 못하게 된다. 따라서 코드가 지저분해지고 품질이 하락한다. 기능중심 프로그래밍은 다음과 같은 부작용을 가지고 있다. 1. 코드의 중복 버그가 생겨 수정을 해야되면 중복된 코드를 모두 수정해야한다. 2. 코드 속성의 과도한 노출 캡슐화 등.. 2021. 3. 5.
728x90