前戏:设计模式简介

设计模式是面向对象设计的解决方案,是复用性程序设计的经验总结。(与语言无关,任何语言都可以实现设计模式)

设计模式根据使用目的的不同而分为创建型模式(Creational Pattern),结构性模式(Structural Pattern)和行为型模式(Behavioral Pattern)

创建型模式:提出来对象创建的解决方案以及数据封装的方法。降低了创建对象时代码实现的复杂度,是对象的创建时能够满足特定的要求。例如工程模式,抽象工厂模式,单例模式,生成器模式

结构型模式:描述了对象之间的体系结构,通过组合,继承等方式改善体系结构,降低体系结构中的组件依赖性。例如,适配器模式。桥模式,组合模式,装饰器模式,外观模式等。

行为模式:描述了对象之间的交互和各自的职责,有助于实现程序中对象的通讯和流程的控制。例如:迭代器模式,解释器模式,中介者模式,观察者模式等。

使用python同样可以实现各种设计模式,而且实现过程比较简单。

一:工厂模式

在工厂方法模式中,工厂方法用于创建产品。并隐藏了产品对象实例化的过程。过程方法根据不同的参数生成不同的对象。因此客户程序只需要知道工厂类和产品的父类,并不需要知道产品的创建过程以及返回产品的类型。

例如:定义Factory类创建不同的Fruit对象,Apple类和Banana类继承自Fruit类。那么这两个类(Apple和和Banana类就是我们需要去生成的产品)

实现工厂方法(简单版本)

class Factory:def createFruit(self,fruit):if fruit == "apple":return Apple()elif fruit == "banana":return Banana()class Fruit:def __str__(self):return "fruit"class Apple(Fruit):def __str__(self):return "apple"class Banana(Fruit):def __str__(self):return "banana"if __name__ == "__main__":factory = Factory()a = factory.createFruit("apple")b = factory.createFruit("banana")print(a,b)  #apple banana

简单实现,并不完美,后面补上

转载于:https://www.cnblogs.com/ssyfj/p/8970114.html

python---重点(设计模式)相关推荐

  1. 最全面的Python重点知识汇总,建议收藏!

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨网络,由法纳斯特整理 这是一份来自于 SegmentFault ...

  2. 你见过的最全面的Python重点知识总结!

    这是一份来自于 SegmentFault 上的开发者 @二十一 总结的 Python 重点.由于总结了太多的东西,所以篇幅有点长,这也是作者"缝缝补补"总结了好久的东西,强烈建议收 ...

  3. 最全面的Python重点知识汇总,建议码住

    这是一份来自于 SegmentFault 上的开发者 @二十一 总结的 Python 重点.由于总结了太多的东西,所以篇幅有点长,这也是博主"缝缝补补"总结了好久的东西. Py2 ...

  4. 你见过的最全面的Python重点(附代码演示)

    原文链接: https://segmentfault.com/a/1190000018737045 这是一份来自于 SegmentFault 上的开发者 @二十一 总结的 Python 重点.由于总结 ...

  5. 你见过的最全面的Python重点知识汇总

    原文链接: https://segmentfault.com/a/1190000018737045 这是一份来自于 SegmentFault 上的开发者 @二十一 总结的 Python 重点.由于总结 ...

  6. 这或许是你见过的最全面的 Python 重点知识总结

    这是一份总结 Python 重点知识点点文章. 由于有太多的东西,本篇点篇幅有点长,这也是我"缝缝补补"总结了好久的东西,强烈建议收藏.关注.点赞,再慢慢看~ [注]完整版代码.数 ...

  7. 为什么 Python 不用设计模式?

    作者 | 刘欣 责编 | 伍杏玲 本文经授权转自码农翻身(ID:coderising) 在遥远的Python王国,有一位少年,非常热爱编程,他的父母想给他报一个班,问了万能的朋友圈以后,发现大家都推荐 ...

  8. python做平面设计-Python系列干货之——Python与设计模式

    原标题:Python系列干货之--Python与设计模式 一.创建类设计模式 前言: 什么样的程序员是一个好的程序员?学会很多门编程语言,就是一个好的程序员了么?事实上,学会一门编程语言不是一件很难的 ...

  9. python 与设计模式 ——工厂与单例

    python 与设计模式 源码地址:http://git.oschina.net/duoduo3_69/python_design_pattern git checkout v001(这个版本与此篇博 ...

  10. python用设计模式吗_为什么Python不用设计模式?

    原标题:为什么Python不用设计模式? 来自:码农翻身(微信号:coderising) 在遥远的Python王国,有一位少年,非常热爱编程,他的父母想给他报一个班,问了万能的朋友圈以后,发现大家都推 ...

最新文章

  1. Codeforces Round #484 (Div. 2) A. Row
  2. layer.open增添模板效果母页面
  3. spark重要参数调优建议:spark.default.parallelism设置每个stage默认的task数量
  4. 将x的二进制最后一位置为0
  5. C语言tolower函数介绍、示例和实现
  6. 图像特征计算与表示——基于内容的图像检索
  7. 计算机 管理 被停用,如果电脑上出现“你的账户已被停用请向系统管理员咨询”怎么办?...
  8. 0302借软件工程触IT
  9. 从0开始,使用豆瓣数据集做一个基于FM和逻辑回归的电影推荐系统
  10. SmartToast
  11. FFmpeg指令行打开usb摄像头(windows)
  12. Google Play搜不到自己应用
  13. 武 学院2017级计算机专业,关注 | 计算机学院2017级新生见面会暨军训动员会顺利举行...
  14. linux下测试硬盘读写速度
  15. 无限循环小数转化分数
  16. 2020个人成长计划
  17. vscode配置opencv环境,包括opencv源码编译(mingw64 + cmake)
  18. k8s面试中最常见的50个问题(翻译)
  19. 职场员工有没有潜力,看这一个能力就够了
  20. 人工智能中的分析学快速入门之著名教材

热门文章

  1. 基于ZooKeeper的分布式Session实现
  2. 【卷积核设计】Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs
  3. 模型 标签数据 神经网络_大型神经网络和小数据的模型选择
  4. 机器学习结构化学习模型_生产化机器学习模型
  5. 如何学习 azure_Azure的监督学习
  6. 如何使能linux vivid
  7. stm32 USB增加端点总结
  8. FIR定点提高精度的trick_02
  9. ASA 9.21 in Vmware Workstation 10
  10. 64位Ubuntu kylin 16.04搭建tftp服务器