ตัวอย่างโค้ด ของ แบบแผนเทมเพลตเมธอด

ภาษาจาวา

ตัวอย่างโปรแกรมคำนวณหาปริมาตรของรูปทรงกระบอกและรูปทรงสี่เหลี่ยมซึ่งมีสูตรร่วมกันดังนี้

ปริมาตร = พื้นที่ฐาน * ความสูง

โดยที่

  • คำนวณหาปริมาตรในเทมเพลตเมธอดของคลาสนามธรรม
  • พื้นที่ฐานของทรงกระบอกและทรงสี่เหลี่ยมมีวิธีการหาที่แตกต่างกัน อยู่ในเมธอดของซับคลาสรูปธรรม

คลาสนามธรรม ThreeDShape นิยามเมธอด getBaseArea () getHeight () และ getVolume () ซึ่งเป็นเทมเพลตเมธอดมีรายละเอียดการคำนวณหาปริมาตร

public abstract class ThreeDShape {    public abstract double getBaseArea () ;    public abstract double getHeight () ;        /**     * The Template Method     */    public double getVolume () {        return getBaseArea () * getHeight () ;    }}

คลาสรูปธรรม Cylinder กำหนดวิธีการหาพื้นที่ฐานซึ่งเป็นรูปวงกลมในเมธอด getBaseArea ()

public class Cylinder extends ThreeDShape {    private final double radius;    private final double height;    public Cylinder (double radius, double height) {        this.radius = radius;        this.height = height;    }    @Override    public double getBaseArea () {        return Math.PI * radius * radius;    }    @Override    public double getHeight () {        return height;    }}

คลาสรูปธรรม Box กำหนดวิธีการหาพื้นที่ฐานซึ่งเป็นรูปสี่เหลี่ยมในเมธอด getBaseArea ()

public class Box extends ThreeDShape {    private final double width;    private final double length;    private final double height;    public Box (double width, double length, double height) {        this.width = width;        this.length = length;        this.height = height;    }    @Override    public double getBaseArea () {        return width * length;    }    @Override    public double getHeight () {        return height;    }}

ใกล้เคียง

แบบแผนการออกแบบซอฟต์แวร์ แบบแผนซิงเกิลตัน แบบแผนโรงงานนามธรรม แบบแผนแฟกทอรีเมธอด แบบแผนผู้สังเกต แบบแผนประกอบรวม แบบแผนฟะซาด แบบแผนอะแดปเตอร์ แบบแผนเทมเพลตเมธอด แบบแผนอินเทอร์พรีเตอร์