模板模式

简介: 模板模式asynctask 就是模板模式定义:定义一个操作流程的骨架,然后将一些步骤的具体实现放到子类中.意图有一些共用的方法,却在每一个子类都要重写这一方法.

模板模式

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

总结

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

目录
相关文章
|
3月前
|
设计模式 算法 Java
工厂模式、模板模式和策略模式的混合使用
工厂模式又叫做工厂方法模式,是一种**创建型**设计模式,一般是在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型。
33 0
工厂模式、模板模式和策略模式的混合使用
|
8天前
|
设计模式 算法
模板模式
​ 如有错误或有补充,以及任何改进的意见,请留下您的高见 定义 模板模式是一种行为型设计模式,它在一个抽象类中公开定义了执行它的方法的方式/模板。子类可以按需重写方法实现,但调用将以抽象类中定义的方式进行。这种模式的核心思想是将一个算法的骨架定义在一个抽象类中,而将一些步骤延迟到子类中实现。 实现模板模式的步骤包括: 抽象出一个模板类,该类定义了执行算法的骨架。 抽象类中定义算法的骨架,骨架中的具体算法由子类实现。 子类按需重写方法实现,但调用将以抽象类中定义的方式进行。 使用final修饰模板方法,防止别人重写模板方法。 优点 提高了代码的可维护性和复用性。 减少了代码冗余,使算法的修
8 0
|
3月前
|
设计模式 算法 自动驾驶
常见的设计模式(模板与方法,观察者模式,策略模式)
随着时间的推移,软件代码越来越庞大,随着而来的就是如何维护日趋庞大的软件系统。在面向对象开发出现之前,使用的是面向过程开发来设计大型的软件程序,面向过程开发将软件分成一个个单独的模块,模块之间使用函数进行组合,最后完成系统的开发,每次需要修改软件,如果不涉及好各个模块的关系,就会导致软件系统难以维护,从而导致软件变得不可使用。面向对象方法用对象模拟问题域中的实体,以对象间的联系刻画实体间联系
63 2
|
4月前
行为型 模板模式
行为型 模板模式
14 0
|
8月前
|
设计模式 算法 Java
模板模式【Java设计模式】
模板模式【Java设计模式】
31 0
|
10月前
|
设计模式 算法 Java
详解模板模式
1.概述 模板模式是一种常用的设计模式,它定义了一个操作中的算法的骨架,将某些步骤延迟到子类中实现。模板模式使得子类可以在不改变算法结构的情况下重新定义算法中的某些步骤。 模板模式中有两个角色:
106 0
|
设计模式
设计模式(10) -- 工厂设计模式(简单工厂,工厂方法,抽象工厂模式)(上)
设计模式(10) -- 工厂设计模式(简单工厂,工厂方法,抽象工厂模式)(上)
设计模式(10) -- 工厂设计模式(简单工厂,工厂方法,抽象工厂模式)(上)
|
设计模式 Java
设计模式(10) -- 工厂设计模式(简单工厂,工厂方法,抽象工厂模式)(下)
设计模式(10) -- 工厂设计模式(简单工厂,工厂方法,抽象工厂模式)(下)
109 0
设计模式(10) -- 工厂设计模式(简单工厂,工厂方法,抽象工厂模式)(下)
|
设计模式 数据安全/隐私保护
单例模式,代理模式,观察者模式,模板模式代码实例
单例模式,代理模式,观察者模式,模板模式代码实例
单例模式,代理模式,观察者模式,模板模式代码实例
|
设计模式
设计模式-9-工厂模式-1-简单/静态工厂模式
工厂模式(Factory Pattern)就是不通过new关键字而使用工厂类来创建对象,能够让创建对象变得简单而且更方便的修改对象。属于创建型模式。它提供了一种创建对象的最佳方式。
106 0

热门文章

最新文章