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

wordpress 收录北京seo公司司

wordpress 收录,北京seo公司司,一般网站图片尺寸,做签名照的网站目录 策略模式 模板方法模式 策略模式 定义一个个算法,把它们封装起来,并且使它们可以相互替换。本模式使得算法可独立于使用它的客户而变化。角色有:抽象策略、具体策略和上下文。 from abc import abstractmethod, ABCMeta from datetim…

目录

策略模式

模板方法模式


策略模式

定义一个个算法,把它们封装起来,并且使它们可以相互替换。本模式使得算法可独立于使用它的客户而变化。角色有:抽象策略、具体策略和上下文。

from abc import abstractmethod, ABCMeta
from datetime import datetime# 抽象策略
class Strategy(metaclass=ABCMeta):@abstractmethoddef execute(self, data):pass# 具体策略
class FastStrategy(Strategy):def execute(self, data):print("使用较快的策略处理%s" % data)# 具体策略
class SlowStrategy(Strategy):def execute(self, data):print("使用较慢的策略处理%s" % data)# 上下文
class Context:def __init__(self, strategy, data):self.data = dataself.strategy = strategy# 可以定义用户不知道的东西self.date = datetime.now()def set_strategy(self, strategy):self.strategy = strategydef do_strategy(self):self.strategy.execute(self.data)data = "Hello!"
# 使用较快的策略处理
fast_strategy = FastStrategy()
context = Context(fast_strategy, data)
context.do_strategy()
# 使用较慢的策略处理
slow_strategy = SlowStrategy()
context = Context(slow_strategy, data)
context.do_strategy()
"""
使用较快的策略处理Hello!
使用较慢的策略处理Hello!
"""

优点:定义了一些列可重用的算法和行为;消除了一些条件语句;可以提供相同行为的不同实现;缺点:客户必须了解不同的策略。

模板方法模式

内容:定义一个操作中的算法骨架,将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。使用模板方法,需要用到两种角色,分别是抽象类和具体类。抽象类的作用是是定义抽象类(钩子操作),实现一个模板方法作为算法的骨架。具体类的作用实现原子操作。

from abc import ABCMeta, abstractmethod
from time import sleep# 抽象类
class Window(metaclass=ABCMeta):@abstractmethoddef start(self):  # 原子操作/钩子操作pass@abstractmethoddef repaint(self):  # 原子操作/钩子操作pass@abstractmethoddef stop(self):  # 原子操作/钩子操作passdef run(self):"""模板方法(具体方法),这个大逻辑就不需要自己写了:return:"""self.start()while True:try:self.repaint()sleep(1)except KeyboardInterrupt:breakself.stop()# 具体类
class MyWindow(Window):def __init__(self, msg):self.msg = msgdef start(self):print('窗口开始运行!')def stop(self):print('窗口停止运行!')def repaint(self):print(self.msg)MyWindow("Hello...").run()

  模板方法适用的场景:一次性实现一个算法的不变部分,各个子类中的公共行为应该被提取出来并集中到一个公共父类中以避免代码重复;控制子类扩展。

http://www.mmbaike.com/news/100219.html

相关文章:

  • 做外贸仿牌都用哪些网站最常用的几个关键词
  • 建立音乐网站成都正规搜索引擎优化
  • 刚开始做网站要传数据库吗百度seo规则
  • 诸暨做网站公司百度seo排名规则
  • 我的世界大橙子做皮肤的网站阿里云搜索引擎网址
  • 医院导航网站怎么做免费网站电视剧全免费
  • 手机怎么创网站免费下载新郑网络推广公司
  • 企业网站营销策划青岛关键词优化报价
  • 做公司网站好处5188关键词平台
  • 做一个购物网站价格最大免费发布平台
  • 做滚动图的免费网站百度教育小程序
  • 百度站点提交工具电商sem是什么意思
  • 永康营销型网站建设国际最新新闻
  • 推荐股票的好网站大连网络推广公司哪家好
  • 别墅室内设计网站搜索关键词优化
  • 外贸社交网站排名百度经验官网首页
  • 网站怎么做友情链接小红书seo
  • 网络营销推广方法wordseo优化分析
  • 品质网站建设手机百度网盘登录入口
  • 众v创业营网站建设如何免费注册网站
  • 域名空间网站建设成都有实力的seo团队
  • 搜索百度网址版搜索企业seo网站营销推广
  • 在网上做翻译的网站安全又舒适的避孕方法有哪些
  • 怎么建立一个网站东莞做网站公司首选
  • 手机如何创建公众号北京网站优化实战
  • 如何做婚庆公司的网站竞价交易规则
  • 企业建站找哪个公司技能培训有哪些科目
  • 搭建 wiki wordpress西安seo王尘宇
  • 网站开发专业是干嘛的网站 seo
  • 制作图片的软件哪个好seo技术培训教程