当前位置: 首页 > news >正文

培训行业seo整站优化网页设计地址

培训行业seo整站优化,网页设计地址,企业免费自助建站平台,大学生创意产品设计核心思想 模板方法设计模式是一种行为设计模式#xff0c;它定义了一个算法的框架#xff0c;并将某些步骤的具体实现延迟到子类中。通过这种方式#xff0c;模板方法模式允许子类在不改变算法结构的情况下重新定义算法的某些步骤。 模板方法模式的核心在于#xff1a; ​…核心思想 模板方法设计模式是一种行为设计模式它定义了一个算法的框架并将某些步骤的具体实现延迟到子类中。通过这种方式模板方法模式允许子类在不改变算法结构的情况下重新定义算法的某些步骤。 模板方法模式的核心在于 ​1、定义一个算法的骨架在父类中定义一个模板方法该方法包含算法的步骤。 ​2、延迟实现将某些步骤的具体实现交给子类来完成。 使用场景 ​固定流程可变实现当算法的整体流程是固定的但某些步骤的具体实现可能不同时。 ​代码复用当多个类有相似的算法结构但某些步骤的实现不同时可以通过模板方法模式避免代码重复。 ​框架设计在框架设计中模板方法模式常用于定义框架的核心流程同时允许用户自定义某些步骤。 优点 ​代码复用将公共的算法逻辑放在父类中避免重复代码。 ​扩展性子类可以灵活地重写某些步骤而不影响算法的整体结构。 ​控制流程父类控制算法的流程子类只负责实现细节。 缺点 ​灵活性受限由于算法的流程是固定的子类只能改变某些步骤的实现不能改变整体流程。 ​继承的缺点模板方法模式依赖于继承如果子类过多可能会导致类层次结构复杂。 示例代码 #include iostream #include string// 抽象基类定义模板方法 class DocumentProcessor { public:// 模板方法定义算法的骨架void processDocument() {openDocument();readDocument();if (needAnalyze()) {analyzeDocument();}saveDocument();closeDocument();}virtual ~DocumentProcessor() default;protected:// 具体步骤的默认实现virtual void openDocument() {std::cout Opening document... std::endl;}virtual void readDocument() {std::cout Reading document... std::endl;}virtual void analyzeDocument() {std::cout Analyzing document... std::endl;}virtual void saveDocument() {std::cout Saving document... std::endl;}virtual void closeDocument() {std::cout Closing document... std::endl;}// 钩子方法子类可以重写以改变算法的行为virtual bool needAnalyze() {return true;} };// 具体子类实现特定类型的文档处理 class PDFProcessor : public DocumentProcessor { protected:void openDocument() override {std::cout Opening PDF document... std::endl;}void saveDocument() override {std::cout Saving PDF document... std::endl;}bool needAnalyze() override {return false; // PDF 文档不需要分析} };// 具体子类实现另一种类型的文档处理 class WordProcessor : public DocumentProcessor { protected:void openDocument() override {std::cout Opening Word document... std::endl;}void analyzeDocument() override {std::cout Analyzing Word document for spelling errors... std::endl;}void saveDocument() override {std::cout Saving Word document... std::endl;} };int main() {// 处理 PDF 文档DocumentProcessor* pdfProcessor new PDFProcessor();pdfProcessor-processDocument();delete pdfProcessor;std::cout ------------------------ std::endl;// 处理 Word 文档DocumentProcessor* wordProcessor new WordProcessor();wordProcessor-processDocument();delete wordProcessor;return 0; }输出结果 Opening PDF document... Reading document... Saving PDF document... Closing document... ------------------------ Opening Word document... Reading document... Analyzing Word document for spelling errors... Saving Word document... Closing document...代码解析 ​DocumentProcessor 类 定义了模板方法 processDocument()它包含了文档处理的固定流程。 提供了默认的步骤实现如 openDocument()、readDocument() 等。 提供了一个钩子方法 needAnalyze()子类可以重写以改变算法的行为。 ​PDFProcessor 和 WordProcessor 类 继承自 DocumentProcessor重写了某些步骤的具体实现。 PDFProcessor 禁用了分析步骤而 WordProcessor 提供了特定的分析逻辑。 ​main 函数 分别使用 PDFProcessor 和 WordProcessor 处理文档展示了模板方法模式的灵活性。
http://www.sczhlp.com/news/270164/

相关文章:

  • 国外做电商网站品牌的三大核心价值
  • 做网站特别注意什么电子商务网站经营性icp
  • 苏州网站建设业务的公司常州知名网站
  • 睢宁县建设局网站国外网站推广方法
  • 做网站一般都用什么字体深圳广告公司排行
  • 给公司建网站 深圳深圳市手机网站建设哪家好
  • 建立什么网站赚钱网站建设的主要问题
  • 找一个免费的网站大连网络科技有限公司
  • iis7新建网站云主机租用服务
  • 网页建站点链接提交工具
  • 常德建设局官方网站网站h标签
  • 快速制作网站的方法简易广州网站建设
  • 自建网站迁移wordpress 多说插件
  • 陕西建设集团招聘信息网站宁波网站建设地址
  • 甘肃省建设厅网站资质升级公示win7dw做asp购物网站
  • 江门建站网站模板江苏做网站价格
  • 网站模版库什么类型的产品可以做网站出口
  • 南宁哪家公司建设网站比较好建设工程合同民法典
  • 网站怎么做微信登录界面网站开发软件排名
  • 手机在线编程网站商丘梁园区
  • 南通网站排名服务博客和网站的区别
  • 从零开始实现简易版Netty(十) MyNetty 通用编解码器解决TCP黏包/拆包问题
  • 三值纠缠思维:系统构建的伦理智慧与设计哲学
  • 商务网站建设公司wordpress4.8版权修改
  • 重练算法(代码随想录版) day 3 - 链表part1
  • 陕西西安网站设计公司做网站的可以注册个工作室吗
  • 北京 网站建设600刷单网站建设
  • golang 网站开发cms模板下载
  • 米方科技网站建设wordpress 文章版本管理
  • 怎样开设网站百度手机app下载安装