DP学习——模板模式

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

字面理解

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

使用场合(敌人出招)

当面对有固定流程的软件问题时,怎么办?你出什么招?

就是开发流程或算法步骤是先绑定和后绑定的问题。

啥意思?我的理解就是在抽象类的方法里实现整个算法流程,但是某一个步骤用纯虚方法实现,由继承抽象类的子类来实现------类似于用c写算法时,某一步骤是用一个函数指针来表示------空出来一个接口,由别的模块实现,然后传递函数指针过来。这就是后绑定。

oop语言中实现

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

c中模板模式

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

这样上层代码不变,底层的各个平台进行扩展。

把握住变化的点和不变的点。

变化的点------底层各个平台,是不断变化的------增加(亦称之为扩展)、删除、修改等。

不变化的点------上层业务逻辑代码是写死的,固定的。

相关推荐
李小星同志1 分钟前
VID2WORLD: CRAFTING VIDEO DIFFUSION MODELSTO INTERACTIVE WORLD MODELS论文学习
学习
laplace012336 分钟前
Claude Code 逆向工程报告 笔记(学习记录)
数据库·人工智能·笔记·学习·agent·rag
lingggggaaaa40 分钟前
安全工具篇&Go魔改二开&Fscan扫描&FRP代理&特征消除&新增扩展&打乱HASH
学习·安全·web安全·网络安全·golang·哈希算法
Daydream.V1 小时前
网页学习——HTML
学习
张永清-老清2 小时前
每周读书与学习->JMeter性能测试脚本编写实战(四)-利用JMeter对MySQL数据库查询进行性能测试
学习·jmeter·性能调优·jmeter性能测试·性能分析·每周读书与学习
InterestOriented2 小时前
中老年线上学习发展:兴趣岛“内容+服务+空间”融合赋能下的体验升级
人工智能·学习
宇钶宇夕2 小时前
CoDeSys入门实战一起学习(二十八):(ST)三台电机顺起逆停程序详解
运维·学习·自动化·软件工程
£漫步 云端彡2 小时前
Golang学习历程【第十篇 方法(method)与接收者】
开发语言·学习·golang
im_AMBER2 小时前
Leetcode 111 两数相加
javascript·笔记·学习·算法·leetcode
四谎真好看3 小时前
JavaWeb学习笔记(Day12)
笔记·学习·学习笔记·javaweb