模板模式

作者: Chauncey_Chen | 来源:发表于2017-01-05 14:44 被阅读24次

模板模式

asynctask 就是模板模式

定义:

定义一个操作流程的骨架,然后将一些步骤的具体实现放到子类中.

意图

有一些共用的方法,却在每一个子类都要重写这一方法.

实现流程

1.抽象类中定义抽象方法,a,b,c.
2.抽象类中定义一个final方法,方法体为a,b,c的组合.
3.子类继承抽象类,并重写抽象方法.

应用举例

android中的Asynctask是一个抽象类,其中prepare,background,post三个方法.都是按照顺序执行.

优点

1.封装不变部分,扩展可变部分.
2.提取公共代码,便于维护.
3.行为由父类控制,子类实现.

使用场景

有多个子类,且逻辑相同.例如在BaseActivity中进行相应的初始化操作.

代码实现

1.抽象类

public abstract class Game {
    
    
    public abstract void initGame();
    public abstract void startGame();
    public abstract void endGame();

    public final void play(){
        initGame();
        startGame();
        endGame();
    }
    
}

2.实现类


public class FootballGame extends Game{

    @Override
    public void initGame() {
        // TODO Auto-generated method stub
        System.out.println("FootballGame initGame");
    }

    @Override
    public void startGame() {
        // TODO Auto-generated method stub
        System.out.println("FootballGame startGame");
    }

    @Override
    public void endGame() {
        // TODO Auto-generated method stub
        System.out.println("FootballGame endGame");
    }

}

public class BasketballGame  extends Game{

    @Override
    public void initGame() {
        // TODO Auto-generated method stub
        System.out.println("BasketballGame initGame");
    }

    @Override
    public void startGame() {
        // TODO Auto-generated method stub
        System.out.println("BasketballGame startGame");

    }

    @Override
    public void endGame() {
        // TODO Auto-generated method stub
        System.out.println("BasketballGame endGame");

    }

}

3.测试类


public class Test {
    public static void main(String[] args) {
        
        Game game =new BasketballGame();
        game.play();
        
    }
}

BasketballGame initGame
BasketballGame startGame
BasketballGame endGame

总结

自己之前在写一些抽象类的时候,写过模板模式的逻辑模式,现在看来,体会也更加深刻.

相关文章

  • 11.8设计模式-模板模式-详解

    设计模式-模式模式 模板方法模式详解 模板方法模式在android中的实际运用 1.模板方法模式详解 2.模板方法...

  • 第5章 -行为型模式-模板方法模式

    一、模板方法模式的简介 二、模板方法模式的优点 三、模板方法模式的应用场景 四、模板方法模式的实例

  • 模板方法模式

    模板方法模式 模板方法模式的定义 模板方法模式(Template Method Pattern)是如此简单,以致让...

  • 设计模式系列-模板方法模式

    JAVA设计模式系列: 单例模式 观察者模式 模板方法模式 模板方法模式 定义 模板方法模式在一个方法中定义了算法...

  • 设计模式(行为型)-- 模板模式

    模板模式的原理与实现 模板模式,全称是模板方法设计模式,英文是 Template Method Design Pa...

  • 行为型-Template

    模板模式的原理与实现 模板模式,全称是模板方法设计模式,英文是 Template Method Design Pa...

  • 行为型 模板模式(文末有项目连接)

    1:模板方式解决的问题(先了解) 2:模板模式的原理与实现 3:模板模式核心代码 4:模板模式复用例子(Input...

  • 模板模式,也是解耦算法的吗?

    模板模式,和算法有什么关系呢? 模板模式,在什么场景使用呢? 模板模式(Template Pattern),定义一...

  • 模板方法模式

    一、模板方法模式介绍 二、模板方法模式代码实例

  • 58 - 模板模式

    本文来学习另外一种行为型设计模式,模板模式。模板模式主要是用来解决复用和扩展两个问题 模板模式的原理与实现 模板模...

网友评论

    本文标题:模板模式

    本文链接:https://www.haomeiwen.com/subject/oqjzvttx.html