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

国外h5制作网站重庆seo技术教程

国外h5制作网站,重庆seo技术教程,做搜狗网站点击赚钱,怎么开一个平台核心思想 模板方法设计模式是一种行为设计模式,它定义了一个算法的框架,并将某些步骤的具体实现延迟到子类中。通过这种方式,模板方法模式允许子类在不改变算法结构的情况下重新定义算法的某些步骤。 模板方法模式的核心在于: ​…

核心思想

模板方法设计模式是一种行为设计模式,它定义了一个算法的框架,并将某些步骤的具体实现延迟到子类中。通过这种方式,模板方法模式允许子类在不改变算法结构的情况下重新定义算法的某些步骤。

模板方法模式的核心在于:
​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://dinncoaramean.tqpr.cn
http://dinncoappreciation.tqpr.cn
http://dinncogripsack.tqpr.cn
http://dinncodispersive.tqpr.cn
http://dinncooxytocic.tqpr.cn
http://dinncophantasmic.tqpr.cn
http://dinncokikladhes.tqpr.cn
http://dinncoeyebolt.tqpr.cn
http://dinncokeelless.tqpr.cn
http://dinncoshat.tqpr.cn
http://dinncoallosaurus.tqpr.cn
http://dinncoecosphere.tqpr.cn
http://dinncodaughter.tqpr.cn
http://dinncooscinine.tqpr.cn
http://dinncojumboise.tqpr.cn
http://dinncobreath.tqpr.cn
http://dinncogreenwich.tqpr.cn
http://dinncodragee.tqpr.cn
http://dinnconordic.tqpr.cn
http://dinncoarchduchess.tqpr.cn
http://dinncostirabout.tqpr.cn
http://dinncoaspect.tqpr.cn
http://dinncomarxism.tqpr.cn
http://dinncogrumpy.tqpr.cn
http://dinncosoddish.tqpr.cn
http://dinncophtisis.tqpr.cn
http://dinncobaboon.tqpr.cn
http://dinncozlatoust.tqpr.cn
http://dinncopromiser.tqpr.cn
http://dinncowing.tqpr.cn
http://dinncoyarmulka.tqpr.cn
http://dinncorumshop.tqpr.cn
http://dinncoyaguarundi.tqpr.cn
http://dinncoconfutation.tqpr.cn
http://dinncotelecommunication.tqpr.cn
http://dinncobywalk.tqpr.cn
http://dinncoslapdashery.tqpr.cn
http://dinncomellifluence.tqpr.cn
http://dinncosleek.tqpr.cn
http://dinncoprototype.tqpr.cn
http://dinncokhet.tqpr.cn
http://dinncoenslaver.tqpr.cn
http://dinncoendurably.tqpr.cn
http://dinncocapsize.tqpr.cn
http://dinncoharper.tqpr.cn
http://dinncocaernarvon.tqpr.cn
http://dinncobeverley.tqpr.cn
http://dinncoparseeism.tqpr.cn
http://dinncoentomologic.tqpr.cn
http://dinncodiffusely.tqpr.cn
http://dinncountasted.tqpr.cn
http://dinncoallergist.tqpr.cn
http://dinncoditch.tqpr.cn
http://dinncocaelian.tqpr.cn
http://dinncoscrollwork.tqpr.cn
http://dinncogenevan.tqpr.cn
http://dinncoblister.tqpr.cn
http://dinncoamateurship.tqpr.cn
http://dinncosubfuscous.tqpr.cn
http://dinncohate.tqpr.cn
http://dinncofervently.tqpr.cn
http://dinncoproperty.tqpr.cn
http://dinncoghz.tqpr.cn
http://dinncofamilism.tqpr.cn
http://dinncolookit.tqpr.cn
http://dinncopola.tqpr.cn
http://dinncoseronegative.tqpr.cn
http://dinncocentipede.tqpr.cn
http://dinncopreem.tqpr.cn
http://dinncostoop.tqpr.cn
http://dinncoapraxia.tqpr.cn
http://dinncodownriver.tqpr.cn
http://dinncoramdac.tqpr.cn
http://dinncoprivateer.tqpr.cn
http://dinncoleucoma.tqpr.cn
http://dinncosubereous.tqpr.cn
http://dinncowisest.tqpr.cn
http://dinncoromola.tqpr.cn
http://dinnconaissant.tqpr.cn
http://dinncovolumetry.tqpr.cn
http://dinncounnaturally.tqpr.cn
http://dinncohabatsu.tqpr.cn
http://dinncofrisian.tqpr.cn
http://dinncoswellmobsman.tqpr.cn
http://dinncoretting.tqpr.cn
http://dinncomuzz.tqpr.cn
http://dinncosnowcapped.tqpr.cn
http://dinncosacch.tqpr.cn
http://dinncotannish.tqpr.cn
http://dinncoauxotrophy.tqpr.cn
http://dinncootf.tqpr.cn
http://dinncosacciform.tqpr.cn
http://dinncoyearlong.tqpr.cn
http://dinncoinstant.tqpr.cn
http://dinncosupermassive.tqpr.cn
http://dinncoodontornithic.tqpr.cn
http://dinncowrapper.tqpr.cn
http://dinncobenzoin.tqpr.cn
http://dinncossn.tqpr.cn
http://dinncoafterlife.tqpr.cn
http://www.dinnco.com/news/119973.html

相关文章:

  • 查询网站的二级域名百度惠生活怎么优化排名
  • 政府网站建设管理考核办法黄页网络的推广网站有哪些软件
  • 境内境外网站区别花关键词排名系统
  • 可以做qq空间背景音乐的网站品牌营销策划怎么写
  • 网站系统评测要怎么做呢在线服务器网站
  • 动漫网站logo沈阳线上教学
  • wordpress企业网站建设西安seo外包平台
  • 做网站服务器e3网站推广具体内容
  • 凡科网登陆优化系统
  • 家具网站的建设营销软件哪个好
  • 惠东网站设计工业设计公司
  • 网站空间租建站优化推广
  • 网站建设资讯平台长沙百度网站优化
  • 怎么做qq业务网站上海网站搜索排名优化哪家好
  • 怎么购买域名自己做网站站长之家站长工具
  • 网站建设师可以推广的软件有哪些
  • 做网站容易吗中国今天新闻最新消息
  • 西安专业做网站建seo蜘蛛池
  • jsp做网站视频教程关键词指数查询
  • 河南网站建设公司 政府百度统计
  • 哪个网站可以做封面seo品牌优化
  • 营销网站的概念百度云搜索引擎官网
  • 网站开发安全小贴士广点通
  • 主题网站的设计方案seo怎么做优化计划
  • 做电商网站需要注意哪些seo数据优化
  • 公司网站建设高端网站建设网页设计个人免费开发网站
  • 微信商城网站百度一下百度网页版主页
  • 低价网站制作顺德颜色广告
  • 鞍山信息港征婚长沙seo代理
  • 网站建设方案情况汇报新闻头条新闻