一般的なデザインモード----テンプレート方法モード
2307 ワード
package org.design.patterns;
/**
* : , 。
* , 。
*/
//
public abstract class AbstractTemplateMethod {
/**
* , final ,
*/
final void templateMethod() {
// " "
primitiveOperation1();
primitiveOperation2();
primitiveOperation3();
// " "
concreteOperation();
// " "
hook();
}
/** */
abstract void primitiveOperation1();
abstract void primitiveOperation2();
abstract void primitiveOperation3();
// , final,
final void concreteOperation() {
System.out.println("AbstractTemplateMethod.concreteOperation()");
}
// , , ,
void hook() {
}
}
//
class TemplateMethodImpl extends AbstractTemplateMethod {
@Override
void primitiveOperation1() {
System.out.println("TemplateMethodImpl.primitiveOperation1()");
}
@Override
void primitiveOperation2() {
System.out.println("TemplateMethodImpl.primitiveOperation2()");
}
@Override
void primitiveOperation3() {
System.out.println("TemplateMethodImpl.primitiveOperation3()");
}
@Override
void hook() {//
super.hook();
}
// public static void main(String[] args) {
// new TemplateMethodImpl().templateMethod();
// }
}
//===========================================================================
/*
* :
*
* : ( , )
*
* : , ( " " )
*
* : ( )
*
*/
/*
* :
* -" " ,
* - 、
* - , final
* - , ,
* -
*
*/