패턴 - 6. 템플릿 메소드 패턴(Template Method Pattern) 6. 템플릿 메소드 패턴(Template Method Pattern) - 상위 클래스에서 처리의 흐름을 제어하며, 하위 클래스에서 처리의 내용을 구체화 한다. - 여러 클래스에 공통되는 사항은 상위 추상 클래스에서 구현하고, 각각의 상세 부분은 하위 클래스에서 구현 - 위 예제로 보면 음료수를 만들 경우 각각 커피와 홍차는 음료로부터 중복되는 코드가 발생한다.ㆍ 중복코드 : 물을 끓인다, 컵에 따른다 - 여기서 중복되는 코드를 상위 음료 클래스에서 구현하고 각각의 세부적인 부분들은 하위 클래스에서 구현한다. - 이렇게 중복되는 코드는 상위클래스에서 구현하고 하위 클래스에선 중복되지않은 것들만 구현한다. 더보기 패턴 - 5. 데코레이터 패턴(Decorator Pattern) 5. 데코레이터 패턴(Decorator Pattern) - 객체를 동적(Dynamic)으로 서브 클래스를이용해서 확장한다. - 기본 클래스 및 해당 객체 자체에 추가적인 서브 클래스를 구성해서 생성자 파라메터로 객체를 넘겨서 원하는 기능을 표현하는 방법 - 구현 클래스와 같은 형식의 데코레이터를 생성하고 해당 데코레이터를 구현한 다양한 서브클래스를 생성한다. - 구현 클래스와 타입(A)이 같으므로 덧씌울 수 있다. ※ 쉽게 생각하면 구현 되어 있는 클래스가 있고 새롭게 재정의? 구현을 다시 한다면 기존 코드를 복사한 Decorator를 생성 한 다음 서브 클래스에서 다시 재정의 해서 사용하는 방법이다.자식 클래스?에서 다시 덮어 씌운다는 생각을 갖자 5.1 특징 및 장단점 5.1.1 특징 - 다양한 부가.. 더보기 패턴 - 4. 스트래티지 패턴(Strategy Pattern) 4. 스트래티지 패턴(Strategy Pattern) - 객체가 상태를 가지고 있고 현재 상태에 따라 행동이 달라지는 것을 말한다. - 왼쪽 UML 다이어그램을 보면 추상 클래스로 Animal을 만든 후 동물의 공통함수 Cry(울기), Move(움직이기), Display(보여주기) 메소드를 정의 했다. - 그 후 독수리와 호랑이는 Animal 클래스를 상속 받았으며 메소드들을 정의 했다. - 상속보다는 구성을 활용 - 구현이 아닌 인터펭스에 맞춰서 프로그래밍을 하도록한다. - 기존 Animal에 Fly나 Cry를 추가 할경우 Animal에 넣어 상속시키는 것이 아니라 Fly와 Cry의 함수를 따로 빼 캡슐하 하여 사용하도록 한다. - 변하는 부분을 캡슐화 하여 해당 기능을 인터펭스에 위임한다. - 코드의.. 더보기 이전 1 2 3 4 5 ··· 19 다음