模板設計模式
阿新 • • 發佈:2018-12-07
在程式開發中你可能經常遇到這種情況,某個要實現的演算法分為多個步驟,有些步驟是固定不變的,有些步驟是不固定的,為了提高程式碼的可擴充套件性和可維護性,模板設計模式在這種場景下就派上用場了。
在模板設計模式中,一個演算法可以分為多個步驟,每個步驟對應一個方法稱為基本方法,步驟的執行順序是在一個模板方法中定義好的,有些基本方法是固定不變的,有些基本方法是不固定的。在模板設計模式中,模板方法和固定不變的基本方法會在父類中實現,而不固定的基本方法在父類中是抽象方法,其實現被延遲到子類中完成。
如上圖所示,在抽象類AbstractClass中Operation_4()方法是固定的基本方法,其實現在父類中。而Operation_2、Operation_3()、Operation_5()是不固定的基本方法,所以在父類中是抽象方法,需要子類去實現。
/*********************************************************************** * Module: AbstractClass.java * Author: Administrator * Purpose: Defines the Class AbstractClass ***********************************************************************/ import java.util.*; public abstract class AbstractClass { public void template() { // TODO: implement } public abstract void operation(); public abstract void operation3(); public void operation4() { // TODO: implement } public abstract void operation5(); }
/*********************************************************************** * Module: ConcreteClass1.java * Author: Administrator * Purpose: Defines the Class ConcreteClass1 ***********************************************************************/ import java.util.*; public class ConcreteClass1 extends AbstractClass { public void operation() { // TODO: implement } public void operation3() { // TODO: implement } public void operation5() { // TODO: implement } }
/***********************************************************************
* Module: ConcerteClass2.java
* Author: Administrator
* Purpose: Defines the Class ConcerteClass2
***********************************************************************/
import java.util.*;
public class ConcerteClass2 extends AbstractClass {
public void operation() {
// TODO: implement
}
public void operation3() {
// TODO: implement
}
public void operation5() {
// TODO: implement
}
}