템플릿 메소드 패턴
//부모클래스에서 템플릿에 해당하는 메소드(fight)가 정의되있고 fight 내용중 세부 attack,move하는 기능에 대한 정의는 추상메소드로 남겨둔채
//자식클래스에서 세부 attack,move를 구현해서 템플릿을 완성하는 방법
package d02;
public abstract class Robot {
protected String name;
public void fight(){
System.out.println(name + "가 전투를 시작합니다.");
attack();
move();
attack();
System.out.println(name + "가 전투를 종료합니다.");
}
public abstract void attack();
public abstract void move();
}
---------------------------------------------------------------
package d02;
public class TaekwonV extends Robot{
// String name = "태권브이";
public TaekwonV(){
name = "태권브이";
}
public void attack(){
System.out.println("펀치로 공격!");
}
public void move(){
System.out.println("날아서 이동!");
}
전체 윤곽인 구조(템플릿)에 대한 재사용은 잘 이뤄지지만, 세부구형기능에 대한 재사용은 이뤄지지 않음.
기능을 재사용하려면, 일단 기능을 분리해야됨. <-- 기능을 구현하는 독립적인 클래스로 구현.
단일 책임 원칙 : 모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함을 일컫는다. 클래스가 제공하는 모든 기능은 이 책임과 주의 깊게 부합해야 한다.
단일 책임 원칙의 장점 - 단일 책임 원칙을 지키려고 하다 보면 인터페이스 등을 도입하게 되며, 여러 디자인 패턴을 적용해서 설계를 우아하게 만들게 된다. 그러면서 자연스럽게 모듈간의 결합이 느슨해진다. 이것은 어떤 변경이 필요할 때 수정 대상을 명확하게 하는 결과를 가져온다.
의존 관계 역전 원칙 : 소프트웨어 모듈들을 분리하는 특정 형식을 지칭한다. 이 원칙을 따르면, 상위 계층(정책 결정)이 하위 계층(세부 사항)에 의존하는 전통적인 의존 관계를 반전(역전)시킴으로써 상위 계층이 하위 계층의 구현으로부터 독립되게 할 수 있다.
리스코프 치환 원칙 : 컴퓨터 프로그램에서 자료형 가 자료형
의 하위형이라면 필요한 프로그램의 속성(정확성, 수행하는 업무 등)의 변경 없이 자료형
의 객체를 자료형
의 객체로 교체(치환)할 수 있어야 한다는 원칙이다.
' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글
Day17 제네릭과 컬렉션 (0) | 2016.04.05 |
---|---|
Day16 패키지 (0) | 2016.04.04 |
Day 14 형변환 , 추상클래스 (0) | 2016.03.31 |
Day13 상속 (0) | 2016.03.30 |
Day12 변수 (0) | 2016.03.29 |