반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- postorder
- 결합전문기관
- paragraph
- broscoding
- 데이터전문기관
- KNeighborsClassifier
- tensorflow
- classification
- mglearn
- 머신러닝
- 자료구조
- web
- web 용어
- discrete_scatter
- bccard
- java역사
- pycharm
- vscode
- C언어
- CES 2O21 참여
- web 사진
- html
- cudnn
- inorder
- 대이터
- Keras
- web 개발
- 웹 용어
- CES 2O21 참가
- 재귀함수
Archives
- Today
- Total
bro's coding
java.Design pattern.template 본문
반응형
Template Method Design Pattern
부모 클래스(상위 클래스)에서 작업처리의 흐름을 정의하고 자식 클래스에서 작업처리의 내용을 구체화하는 페턴
> SeaFoodPizzaService, PotatoPizzaService..많은 피자 종류가 있다.
피자 공정에서 토핑을 제외한 나머지 작업(도우를 만들다, 피자를 굽다, 자르다, 포장하다)은 공통된 작업이고 잡업처리의 흐름도 동일하다.[+(abstract)토핑]
부모 클래스에서 재사용 가능한 작업 기능 및 작업 처리의 흐름은 자식에게 제공하고 자식 클래스 차원에서만 구현할 수 있는 토핑 작업만 직접 구현하도록 한다.
package step4;
public abstract class PizzaService {
protected void prepare() {
System.out.println("도우를 만들다");
}
// 부모 차원에서 구현할 수 없는 구체적인 작업(토핑작업)은 자식 클래스에게 구현을 강제 함
protected abstract void topping();
protected void bake() {
System.out.println("굽다");
}
protected void cutting() {
System.out.println("자르다");
}
protected void boxing() {
System.out.println("포장하다");
}
/*
* Template method : 작업 처리를 정의하는 메서드
*/
public void makePizza() {
this.prepare();
this.topping();
this.bake();
this.cutting();
this.boxing();
}
}
package step4;
public class SeaFoodPizzaService extends PizzaService{
@Override
protected void topping() {
// TODO Auto-generated method stub
System.out.println("해산물 토핑");
}
}
package step4;
public class PotatoPizzaService extends PizzaService {
@Override
protected void topping() {
// TODO Auto-generated method stub
System.out.println("감자 토핑");
}
}
package step4;
public class TestTemplateMethodDesignPattern {
public static void main(String[] args) {
PizzaService serviceList[] = { new SeaFoodPizzaService(), new PotatoPizzaService() };
for (int i=0;i<serviceList.length;i++) {
serviceList[i].makePizza();
}
}
}
java.Design pattern
Design Pattern 소프트웨어 설계, 구현 단계에서 공통적으로 발생하는 문제에 대한 해결책
broscoding.tistory.com
java.abstract(추상화)
abstract abstract class : 상속을 위한 class > 직접 객체화 될 수 없다.(자식 클래스의 생성자에서 super()를 이용한 생성은 가능) > 여러 구체화된 자식 크래스의 공통적인 멤버를 추상화한 클래스 > abstrac
broscoding.tistory.com
반응형
'[IT] > java' 카테고리의 다른 글
java.Interface.default/static method (0) | 2021.03.05 |
---|---|
java.class.layout (0) | 2021.03.05 |
java.Prepare.Interview (0) | 2021.03.05 |
java.Interface (0) | 2021.03.04 |
java.Design pattern (0) | 2021.03.04 |
java.abstract(추상화) (0) | 2021.03.04 |
java.final (0) | 2021.03.04 |
java.static(정적) (0) | 2021.03.04 |
Comments