DP学习——模板模式

news/2024/7/9 23:28:38 标签: 学习

学而时习之,温故而知新。

字面理解

模板?啥叫模板?模板就是固定死了,就是一套流程/步骤上层写死了。固定死了的流程或者步骤就是模板。然后我们要重写或者改写的是写死的这套流程中的节点。俗称“套模板”。

使用场合(敌人出招)

当面对有固定流程的软件问题时,怎么办?你出什么招?
就是开发流程或算法步骤是先绑定和后绑定的问题。
啥意思?我的理解就是在抽象类的方法里实现整个算法流程,但是某一个步骤用纯虚方法实现,由继承抽象类的子类来实现——类似于用c写算法时,某一步骤是用一个函数指针来表示——空出来一个接口,由别的模块实现,然后传递函数指针过来。这就是后绑定。

oop语言中实现

而oop里就是子类继承抽象类,返回父类指针,调用就行了,统一了上层应用程序的逻辑(上层应用代码不用改变),只需编写子类就可以实现算法替代,就是换底层(初始化时改下,上层业务代码不变)。

c中模板模式

在c中,比如大型软件中,框架固定,如果底层平台不断变化,那么可以搞这样的模板——上层流程不变,写死的,但是流程的各个节点采用统一的函数或者函数指针,然后在最底层各个平台实现上层流程所需的同名函数或者初始化时传递函数指针。这样上层框架代码不变,变的是编译时链接的平台函数是不同的,初始化时传递的函数指针是不同的。
这样上层代码不变,底层的各个平台进行扩展。
把握住变化的点和不变的点。

变化的点——底层各个平台,是不断变化的——增加(亦称之为扩展)、删除、修改等。
不变化的点——上层业务逻辑代码是写死的,固定的。


http://www.niftyadmin.cn/n/5539042.html

相关文章

ArcGIS Pro SDK (七)编辑 15 版本控制选项

ArcGIS Pro SDK (七)编辑 15 版本控制选项 文章目录 ArcGIS Pro SDK (七)编辑 15 版本控制选项获取和设置版本控制选项 环境:Visual Studio 2022 .NET6 ArcGIS Pro SDK 3.0 获取和设置版本控制选项 var vOptions A…

Symfony配置管理深度解析:构建可维护项目的秘诀

Symfony是一个高度灵活且功能丰富的PHP框架,它提供了一套强大的配置管理系统,使得开发者能够轻松定制和优化应用程序的行为。本文将深入探讨Symfony中的配置管理机制,包括配置的结构、来源、加载过程以及最佳实践。 一、配置管理的重要性 在…

Word中输入文字时,后面的文字消失

当在Word中输入文字时,如果发现后面的文字消失,通常是由以下3个原因造成的: 检查Insert键状态:首先确认是否误按了Insert键。如果是,请再次按下Insert键以切换回插入模式。在插入模式下,新输入的文字会插入…

抖音矩阵智能剪辑系统源码,saas多平台多账号一站式管理,系统搭建流程

‘1. 将MySQL升级至5.6版本,PHP更新至7.2版本,并使用Apache作为服务器。数据库应命名为“juzhen”。 2. 在Nginx环境下,实现伪静态的切换。 3. 将安装包解压至项目的根目录,并定位至application/database.php文件以更换数据库密…

把鼠标光标移到一段文字的首部,尾部,以及翻行查找文字等

如果当前的键盘无单独的End、Home、PgDn、PdUp。 1、如果光标在一段文字的中间: 需要快速移到文字尾部,按住:shiftEnd(如果End在数字1键扣上,shift1) 需要快速移到文字首部:按住:shiftHome(如果End在数字…

Kafka系列之Kafka知识超强总结

一、Kafka简介 Kafka是什么 Kafka是一种高吞吐量的分布式发布订阅消息系统(消息引擎系统),它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览, 搜索和其他用户的行动)是在现代网络上的许多社…

学习.NET 8 MiniApis入门

介绍篇 什么是MiniApis? MiniApis的特点和优势 MiniApis的应用场景 环境搭建 系统要求 安装MiniApis 配置开发环境 基础概念 MiniApis架构概述 关键术语解释(如Endpoint、Handler等) MiniApis与其他API框架的对比 第一个MiniApis…

【Symfony异步任务处理】掌握队列系统的高效之道

标题:【Symfony异步任务处理】掌握队列系统的高效之道 在现代Web应用开发中,处理耗时的任务(如发送邮件、处理文件上传等)时,队列系统是一种非常有效的方式。Symfony作为一个功能丰富的PHP框架,提供了强大…