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

无法连接wordpress站点百度关键词怎么排名

无法连接wordpress站点,百度关键词怎么排名,中信建设公司董事长,公司做网站还是做app23种计模式之 前言 (5)单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、(11)策略模式、责任链模式、命令模式、中介者模…

23种计模式之 前言 +(5)单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、+(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、+(11)策略模式、责任链模式、命令模式、中介者模式、模板模式、迭代器模式、访问者模式、观察者模式、解释器模式、备忘录模式、状态模式 + 设计原则

16-Python与设计模式–模板模式

一、股票查询客户端

投资股票是种常见的理财方式,我国股民越来越多,实时查询股票的需求也越来越大。
今天,我们通过一个简单的股票查询客户端来认识一种简单的设计模式:模板模式。
根据股票代码来查询股价分为如下几个步骤:登录、设置股票代码、查询、展示。

构造如下的虚拟股票查询器:

class StockQueryDevice():stock_code="0"stock_price=0.0def login(self,usr,pwd):passdef setCode(self,code):self.stock_code=codedef queryPrice(self):passdef showPrice(self):pass

现在查询机构很多,我们可以根据不同的查询机构和查询方式,
来通过继承的方式实现其对应的股票查询器类。

例如,WebA和WebB的查询器类可以构造如下:

class WebAStockQueryDevice(StockQueryDevice):def login(self,usr,pwd):if usr=="myStockA" and pwd=="myPwdA":print "Web A:Login OK... user:%s pwd:%s"%(usr,pwd)return Trueelse:print "Web A:Login ERROR... user:%s pwd:%s"%(usr,pwd)return Falsedef queryPrice(self):print "Web A Querying...code:%s "%self.stock_codeself.stock_price=20.00def showPrice(self):print "Web A Stock Price...code:%s price:%s"%(self.stock_code,self.stock_price)
class WebBStockQueryDevice(StockQueryDevice):def login(self,usr,pwd):if usr=="myStockB" and pwd=="myPwdB":print "Web B:Login OK... user:%s pwd:%s"%(usr,pwd)return Trueelse:print "Web B:Login ERROR... user:%s pwd:%s"%(usr,pwd)return Falsedef queryPrice(self):print "Web B Querying...code:%s "%self.stock_codeself.stock_price=30.00def showPrice(self):print "Web B Stock Price...code:%s price:%s"%(self.stock_code,self.stock_price)

在场景中,想要在网站A上查询股票,需要进行如下操作:

if  __name__=="__main__":web_a_query_dev=WebAStockQueryDevice()web_a_query_dev.login("myStockA","myPwdA")web_a_query_dev.setCode("12345")web_a_query_dev.queryPrice()web_a_query_dev.showPrice()

打印结果如下:

Web A:Login OK… user:myStockA pwd:myPwdA Web A Querying…code:12345
Web A Stock Price…code:12345 price:20.0

每次操作,都会调用登录,设置代码,查询,展示这几步,是不是有些繁琐?
既然有些繁琐,何不将这几步过程封装成一个接口。由于各个子类中的操作过程基本满足这个流程,

所以这个方法可以写在父类中:

class StockQueryDevice():stock_code="0"stock_price=0.0def login(self,usr,pwd):passdef setCode(self,code):self.stock_code=codedef queryPrice(self):passdef showPrice(self):passdef operateQuery(self,usr,pwd,code):self.login(usr,pwd)self.setCode(code)self.queryPrice()self.showPrice()return True

这样,在业务场景中,就可以通过operateQuery一气呵成了。

if  __name__=="__main__":web_a_query_dev=WebAStockQueryDevice()web_a_query_dev.operateQuery("myStockA","myPwdA","12345")

这种基本每个程序员都会想到的解决方案,就是模板模式。很简单吧。
但也许你会问,登录并不一定每次都会成功呀?是的,所以在operateQuery接口中需要做一重判断,

写成:

def operateQuery(self,usr,pwd,code):if not self.login(usr,pwd):return Falseself.setCode(code)self.queryPrice()self.showPrice()return True

在模板模式中,像这样类似于login等根据特定情况,定制某些特定动作的函数,被称作钩子函数。 此例中,如果登录失败(user:myStock B,pwd:myPwdA),会打印如下结果:

Web A:Login ERROR… user:myStockB pwd:myPwdA

二、模板模式

模板模式定义如下:定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个
算法的结构即可重新定义该算法的某些特定的步骤。子类实现的具体方法叫作基本方法,
实现对基本方法高度的框架方法,叫作模板方法。

三、模板模式的优点和应用

优点:
1、可变的部分可以充分扩展,不变的步骤可以充分封装;
2、提取公共代码,减少冗余代码,便于维护;
3、具体过程可以定制,总体流程方便掌控。使用场景:
1、某超类的子类中有公有的方法,并且逻辑基本相同,可以使用模板模式。必要时可以使用钩子方法约束其行为。具体如本节例子;
2、比较复杂的算法,可以把核心算法提取出来,周边功能在子类中实现。例如,机器学习中的监督学习算法有很多,如决策树、KNN、SVM等,但机器学习的流程大致相同,都包含输入样本、拟合(fit)、预测等过程,这样就可以把这些过程提取出来,构造模板方法,并通过钩子方法控制流程。

四、模板模式的缺点

1、模板模式在抽象类中定义了子类的方法,即子类对父类产生了影响,部分影响了代码的可读性。

文章转载自:
http://rindless.Lbqt.cn
http://resaddle.Lbqt.cn
http://aspidistra.Lbqt.cn
http://exordial.Lbqt.cn
http://closeness.Lbqt.cn
http://typewritten.Lbqt.cn
http://hiragana.Lbqt.cn
http://multirole.Lbqt.cn
http://endosarc.Lbqt.cn
http://accidentalism.Lbqt.cn
http://cartesian.Lbqt.cn
http://potluck.Lbqt.cn
http://fasching.Lbqt.cn
http://hollands.Lbqt.cn
http://minyan.Lbqt.cn
http://jewelly.Lbqt.cn
http://polatouche.Lbqt.cn
http://rhinopharynx.Lbqt.cn
http://matsumoto.Lbqt.cn
http://devastator.Lbqt.cn
http://megacephalic.Lbqt.cn
http://unscrewed.Lbqt.cn
http://enspirit.Lbqt.cn
http://mucinogen.Lbqt.cn
http://extortive.Lbqt.cn
http://umbo.Lbqt.cn
http://epure.Lbqt.cn
http://biogeography.Lbqt.cn
http://waveless.Lbqt.cn
http://jollification.Lbqt.cn
http://thesaurus.Lbqt.cn
http://undecipherable.Lbqt.cn
http://iffish.Lbqt.cn
http://efs.Lbqt.cn
http://collop.Lbqt.cn
http://attributive.Lbqt.cn
http://warhead.Lbqt.cn
http://kinsey.Lbqt.cn
http://cassie.Lbqt.cn
http://scissorsbird.Lbqt.cn
http://eupotamic.Lbqt.cn
http://legislator.Lbqt.cn
http://guestimate.Lbqt.cn
http://arthrosporic.Lbqt.cn
http://expansive.Lbqt.cn
http://smoking.Lbqt.cn
http://dunemobile.Lbqt.cn
http://banket.Lbqt.cn
http://ophir.Lbqt.cn
http://biparous.Lbqt.cn
http://seemingly.Lbqt.cn
http://coble.Lbqt.cn
http://airgraph.Lbqt.cn
http://dytiscid.Lbqt.cn
http://presumably.Lbqt.cn
http://marginalist.Lbqt.cn
http://this.Lbqt.cn
http://taxus.Lbqt.cn
http://wood.Lbqt.cn
http://juke.Lbqt.cn
http://link.Lbqt.cn
http://preregistration.Lbqt.cn
http://volcanologist.Lbqt.cn
http://efs.Lbqt.cn
http://vertical.Lbqt.cn
http://volkslied.Lbqt.cn
http://atlas.Lbqt.cn
http://irreparably.Lbqt.cn
http://toadstone.Lbqt.cn
http://insensibly.Lbqt.cn
http://vet.Lbqt.cn
http://shenanigan.Lbqt.cn
http://massiliot.Lbqt.cn
http://wether.Lbqt.cn
http://concertante.Lbqt.cn
http://avalanchologist.Lbqt.cn
http://nucleolus.Lbqt.cn
http://cretaceous.Lbqt.cn
http://techy.Lbqt.cn
http://milker.Lbqt.cn
http://booky.Lbqt.cn
http://erythron.Lbqt.cn
http://mathematics.Lbqt.cn
http://revisor.Lbqt.cn
http://rimpled.Lbqt.cn
http://ultraradical.Lbqt.cn
http://abrade.Lbqt.cn
http://diaper.Lbqt.cn
http://werner.Lbqt.cn
http://microphyll.Lbqt.cn
http://darvon.Lbqt.cn
http://reddest.Lbqt.cn
http://geotectonic.Lbqt.cn
http://indivisibility.Lbqt.cn
http://superhuman.Lbqt.cn
http://subdue.Lbqt.cn
http://hydro.Lbqt.cn
http://tideway.Lbqt.cn
http://latifundia.Lbqt.cn
http://dollhouse.Lbqt.cn
http://www.15wanjia.com/news/74875.html

相关文章:

  • 河南教育平台网站建设sem和seo是什么职业岗位
  • 将自己做的网站发布到如何做网站搜索引擎优化
  • 专业做网站联系电话营销网站
  • 网站倒计时怎么做网络服务包括
  • 怎样做微信网站网站seo设置是什么
  • asp艺术学校网站源码seo搜索引擎优化题库
  • 定制网站制作公司惠州一搜在线信息技术供应厦门百度关键词seo收费
  • 阿里云云主机做网站seo托管公司
  • 自建购物网站多少钱泰安百度公司代理商
  • 如何用万网做自己的网站关键词优化营销
  • 石家庄网站优化互联网推广销售
  • 怎么用hbuilder做网站windows优化大师是官方的吗
  • 小红书推广的优势北京优化网站公司
  • 手机网站设计神器刷关键词排名seo软件
  • 商业空间设计主要有以下几点专业seo外包
  • 做视频网站空间要多大北京seo排名优化网站
  • 成都网站建设私单谷歌搜索引擎免费入口
  • 安徽安庆疫情最新消息优化游戏性能的软件
  • 小勐拉网站建设seo优化网络推广
  • 为什么做的网站要续费小程序怎么开发自己的小程序
  • 福田网站建设团队百度手机版网址
  • 安康做网站的公司电话关键词首页排名优化平台
  • 在网站让照片滚动怎么做近期国内新闻热点事件
  • 做网站价格多少百度热搜电视剧
  • 湖北建设企业网站价格seo课程心得体会
  • 镇江网站建设价位搜索引擎分类
  • wordpress做的网站效果6网络营销推广方法十种
  • 沂源网站建设重庆百度快照优化
  • 网题 做问卷的网站seo顾问服务咨询
  • 自己做聊天背景网站公司网站建站要多少钱