美文网首页架构设计基础
模板方法模式-针对算法框架结构

模板方法模式-针对算法框架结构

作者: 架构师的一小步 | 来源:发表于2019-03-04 21:24 被阅读0次

模板方法模式-定义

1.定义一个操作中的算法框架
2.将一些步骤延时到子类实现
3.子类可以不改变算法结构,可以重新定义算法的某些特定步骤

模板方法特点

1.(原则->太监方法)不允许被继承和重写

  1. 算法结构固定,不允许修改
  2. 执行流程不可以重写,执行细节可以重写 swift里执行流程会加final关键字,不允许重写

模板方法模式应用场景

场景一:多个子类有公有方法,且逻辑基本相同
场景二:重复复杂的算法,将核心算法设计成为模板方法,其周边细节可以由各个子类实现
场景三:代码重构

区别:和策略模式相比,模板方法针对算法框架结构,策略模式针对具体算法

模板方法模式角色划分

角色一: 抽象类->作用(定义算法框架结构,将一些特定的步骤延时到子类实现)
角色二:具体模板实现类,不改变算法结构,选择性实现某些特定步骤

模板方法原理案例

//
//  TemplateMethodComputer.swift
//  Andy_20190306_TemplateMethod
//
//  Created by 王宁 on 2019/3/6.
//  Copyright © 2019年 王宁. All rights reserved.
//

import UIKit

class TemplateMethodComputer: NSObject {

    override init() {
        super.init()
    }
    
    //    电脑开机过程->开机过程
    //    1、激活电源(按下电源)
    func powerUp() {
        print("按下电源...")
    }
    //    2、检测硬件
    func checkHardware() {
        print("检测硬件...")
    }
    //    3、启动系统(加载系统)
    func loadOS() {
        print("启动系统...")
    }
    //    4、登录系统
    func login() {
        print("登录系统...")
    }
    
    final func startup(){
        //1、激活电源(按下电源)
        powerUp()
        //2、检测硬件
        checkHardware()
        //3、启动系统(加载系统)
        loadOS()
        //4、登录系统
        login()
    }
    
}
//
//  HuaWei.swift
//  Andy_20190306_TemplateMethod
//
//  Created by 王宁 on 2019/3/7.
//  Copyright © 2019年 王宁. All rights reserved.
//

import UIKit
//2.将一些步骤延时到子类实现
//3.子类可以不改变算法结构,可以重新定义算法的某些特定步骤
class HuaWei: TemplateMethodComputer {

    override func checkHardware() {
        print("华为检测硬件...")
    }
    //    3、启动系统(加载系统)
    override func loadOS() {
        print("华为启动系统...")
    }
}

//
//  ViewController.swift
//  Andy_20190306_TemplateMethod
//
//  Created by 王宁 on 2019/3/6.
//  Copyright © 2019年 王宁. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let huawei=HuaWei()
        huawei.startup()
        
        // Do any additional setup after loading the view, typically from a nib.
    }
   
    

}

返回结果

按下电源...
华为检测硬件...
华为启动系统...
登录系统...

模板方法实际用到举例:模板方法的核心(执行流程固定有了顺序,只需实现模板方法即可,不需要关心内部流程细节(顺序))

1.下拉刷新组件:加载流程固定
2.viewcontroller:生命周期固定
3.uiview:生命周期固定

相关文章

  • 模板方法模式-针对算法框架结构

    模板方法模式-定义 1.定义一个操作中的算法框架2.将一些步骤延时到子类实现3.子类可以不改变算法结构,可以重新定...

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

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

  • 大话设计模式之模板方法模式

    模板方法模式 模板方法模式: 定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的...

  • 模板方法模式

    模板方法模式定义 模板方法(Template Method)模式定义一个操作中的算法骨架,而将算法的一些步骤延迟到...

  • 各种设计模式总结和对比

    模板方法模式和策略模式 1、模板方法和策略模式都有封装算法。2、策略模式是使不同算法可以相互替换,且不影响客户端应...

  • 论模板模式

    模板方法模式的实现方案比对 问题:模板方法模式的主要意义在于规范算法流程。标准的模板方法模式采用抽象类的实现方案。...

  • 行为型设计模式详解之模板方法模式!深度解析模板方法模式的使用和实

    模板方法模式 模板方法模式: 使用一个抽象类定义算法模板结构,将某些具体算法步骤的实现延迟到子类中进行,使得子类在...

  • 设计模式(十四)-模板模式

    模板模式 模板方法模式子一个方法中定义一个算法的骨架,而将一些步骤的实现延迟到子类中.模板方法使得子类在不改变算法...

  • 模板方法模式

    1. 模板方法模式 1.1 定义 模板方法模式(Template Method): 父类定义一组操作算法骨架, 而...

  • 【设计模式】模板方法模式

    设计模式:模板方法模式 定义:模板方法模式在一个方法中定义了一个算法的固件,而将一些步骤延迟到子类中。模板方法使得...

网友评论

    本文标题:模板方法模式-针对算法框架结构

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