模板模式(Template Pattern)
模板模式总的来说就是父类定义好步骤与方法,且父类将公共的内容进行抽取,然后子类只做不同的内容即可。
@Slf4j public abstract class GoHomeTemplate { public void goHomeMian(){ log.info("========= goStation ============"); buyTickets(); ridingTools(); log.info("========= goHome ============"); } protected abstract void ridingTools(); protected abstract void buyTickets(); }
@Slf4j public class ShipGoHome extends GoHomeTemplate { @Override protected void ridingTools() { log.info("============ by ship ==============="); } @Override protected void buyTickets() { log.info("============ buy ship tickets==============="); } }
@Slf4j public class TrainGoHome extends GoHomeTemplate { @Override protected void ridingTools() { log.info("============ by train ==============="); } @Override protected void buyTickets() { log.info("============ buy train tickets==============="); } }
测试
@Slf4j @SpringBootTest public class TemplateTest { @Test public void builderTest(){ GoHomeTemplate shipGoHome = new ShipGoHome(); shipGoHome.goHomeMian(); } }
模板模式总体比较简单,没什么可说的,但是在看模板模式的时候,一直有个问题,模板模式和策略模式的区别是什么?
其实模板模式和策略模式并没有一个很明确的区分点,在我看来,可能是侧重点不同,模板模式更注重的是子类要按照父类定义好的流程处理,而策略模式,更像是一个散装的内容,其子类只是对付类中某一种场景的具体实现,至于顺序或如何使用,需要调用者自行控制。
------------------------------------------------------------------
-----------------------------------------------------------
---------------------------------------------
朦胧的夜 留笔~~
-----------------------------------------------------------
---------------------------------------------
朦胧的夜 留笔~~
分类:
设计模式与算法 / 设计模式
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律