zoukankan      html  css  js  c++  java
  • 模板模式

    1.模板模式简介

    在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象
    类中定义的方式进行。这种类型的设计模式属于行为型模式。定义框架,但允许修改细节。

    应用实例:例如在造房子的时候,地基、走线、水管都一样,只有在建筑的后期才有加壁橱加栅栏等差异。
    注意事项:一般模板方法都加上 final 关键词。

    2.示例Demo

    abstract class Game {
        abstract public void play_initialize();
        abstract public void int_playing();
        abstract public void play_finish();
        /*使用final关键字限制子类重写该方法*/
        public final void play() {
            play_initialize();
            int_playing();
            play_finish();
        }
    }
    
    class Football extends Game {
        public void play_initialize() {
            System.out.println("Begin play football");
        }
        public void int_playing() {
            System.out.println("In playing football");
        }
        public void play_finish() {
            System.out.println("After play football");
        }
    }
    
    class Basketball extends Game {
        public void play_initialize() {
            System.out.println("Begin play Basketball");
        }
        public void int_playing() {
            System.out.println("In playing Basketball");
        }
        public void play_finish() {
            System.out.println("After play Basketball");
        }
    }
    
    public class TemplatePatternDemo {
        public static void main(String args[]) {
            Game football = new Football();
            football.play();
    
            Game basketball = new Basketball();
            basketball.play();
        }
    }

    参考:http://www.runoob.com/design-pattern/template-pattern.html

  • 相关阅读:
    ESRI Shapefiles (SHP)
    Python与开源GIS:在OGR中使用SQL语句进行查询
    [推荐]网店代销的卖家,你的宝贝名称修改了吗?
    怎么把经纬度转换成标准的度分秒单位
    如何提高淘宝流量
    十八种方法提升淘宝店流量
    mysql备份数据库几种方法
    Linux查看文件编码格式及文件编码转换
    MySQL 修改字段类型或长度
    mysql外键使用和级联
  • 原文地址:https://www.cnblogs.com/hellokitty2/p/10742517.html
Copyright © 2011-2022 走看看