상속 2

디자인 패턴 이해하기

1. 디자인 패턴 정의 이전 포스팅에서 객체지향특성에 대해 알아보았고, 해당 특성을 이용하며 지켜야할 5가지 원칙이 있었습니다. 그리고 객체 지향 특성들을 '도구', 객체 지향 원칙들을 '도구 사용 방법' 이라고 비유했었습니다. 👌 디자인 패턴은 '도구의 활용 방법'이라고 할 수 있습니다. 우리는 도구의 특징과 어떤 원리로 사용해야 하는지 알고 있습니다. 칼을 예로 들면, 칼은 날카롭고 뾰족한 특징이 있습니다. 그래서 칼은 무엇인가를 자르거나, 찌르는 방식으로 사용할 수 있죠. 칼은 수술을 하거나, 요리를 하거나, 동물을 사냥하는데 활용할 수 있습니다. ✨ 물론 칼로 망치질을 한다던가, 땅을 판다고해도 잡혀가지는 않습니다. 하지만 적절한 활용법은 존재합니다. 개발자들이 공통으로 겪는 '문제들에 대한 해결..

객체 지향 특징 - 캡슐화, 상속, 추상화, 다형성

1. 절차적/구조적 프로그래밍 객체 지향은 절차적/구조적 프로그래밍으로부터 발전해 왔습니다. 따라서 절차적/구조적 프로그래밍의 특징을 갖고 있습니다. 그래서 간단히 정리하고 넘어가려고 합니다. 😊 1.1. 절차적 프로그래밍 절차적 프로그래밍은 코드가 작성된 순서대로 실행되도록 구현해야 합니다. 👍 특히 Goto처럼 분기를 일으키는 명령문의 사용을 지양합니다. 잦은 분기는 프로그램의 작동 원리를 파악하는 데 혼동을 줄 수 있기 때문이죠. 😢😢 그래서 Java에서는 아예 막아 놓았습니다. 1.2. 구조적 프로그래밍 구조적 프로그래밍은 함수를 사용하여 중복을 줄이고 논리적으로 기능을 분리하는 것입니다. 이렇게 구현하면 프로그램 구조를 파악하기 쉬워지고 유지보수에도 용이해지죠. 또한 함수 안에서 지역변수를 사용..