1. '''
  2. 2018-5-2 18:43:54
  3. 设计4s店类
  4. 设计模式:
  5. 简单工厂模式(通过一个类的分离模式)
  6.  
  7. 讨论耦合性的问题
  8. 类与类之间应该是低耦合性
  9. 通过有个 初始化 __init__ 来解耦
  10.  
  11. 这样就是工厂模式
  12. 父类方法名就是接口,子类里面实现
  13. (流程在基类里面定义好,然后在子类里面实现)
  14. '''
  15.  
  16. class Store(object):
  17. def select_car(self):
  18. pass
  19. def order(self,car_type):
  20. return self.select_car(car_type)
  21.  
  22. class BMWCarStore(Store):
  23. def select_car(self,car_type):
  24. return BMWCarStore().select_car_by_type(car_type)
  25.  
  26. class CarStore(Store):
  27. def select_car(self,car_type):
  28. return Factory().select_car_by_type(car_type)
  29.  
  30. class BMWFactory(object):
  31. def select_car_by_type(self,car_type):
  32. pass
  33.  
  34. class CarStore(object):
  35. def __init__(self):
  36. self.factory = Factory()
  37. def order(self,car_type):
  38. return self.factory(car_type)
  39.  
  40. class Factory(object):
  41. def select_car_by_type(car_type):
  42. if car_type=="索纳塔":
  43. return Suonata()
  44. elif car_type=="名图":
  45. return Mingtu()
  46. elif car_type=="ix35":
  47. return Ix35()
  48.  
  49. class Car(object):
  50. def move(self):
  51. print("车在移动")
  52. def music(self):
  53. print("车在播放音乐")
  54. def stop(self):
  55. print("车在停止,,,,,,")
  56.  
  57. class Suonata(Car):
  58. def move(self):
  59. print("车在移动")
  60. def music(self):
  61. print("车在播放音乐")
  62. def stop(self):
  63. print("车在停止,,,,,,")
  64.  
  65. class Mingtu(Car):
  66. pass
  67. class Ix35(Car):
  68. pass
  69.  
  70. car_store =CarStore()
  71. car =car_store.order("索纳塔")
  72. car.move()
  73. car.music()
  74. car.stop()
  75. bmw_store =BMWCarStore()
  76. bmw =bmw_store.order("720li")

day_5.02 py的更多相关文章

  1. day_5.22 py

    #!/usr/bin/env/python #-*-coding:utf-8-*- ''' 私有化 __相当于prevate 外部不能直接调用,只能通过set get方法用 property ''' ...

  2. day_5.21 py 高级编程

    1.禁止模块之间的循环调用 2.浅拷贝    只拷贝引用!!\ 3. 深拷贝  只要里面有引用就继续拷贝 4.copy,copy() 5. '''2018-5-21 11:39:52就业班 py高级 ...

  3. day_5.11 py main

    ''' 2018-5-11 18:52:19 模块其实就是Java中的包 模块 就是 xxx.py main.py默认是最主要的模块 ''' class ClasssName(object): pas ...

  4. day_5.28 py网络编程

    端口 socket简介: socket为一个类   s接收的是返回的对象引用 2018-5-28 15:52:47 开始进行网络编程 udp 套接字 encode() 编码 decode() 解码 ' ...

  5. day_5.20 py

    列表去重的两种方法 1.自己写程序  for循环 2.直接变为set类型

  6. day_5.19 py总结②

  7. day_5.14 py 飞机大战Demo

    飞机未完,继续做 2018-5-14 21:05:45 明天继续       循环里面的坑; 删除列表元素后循环了打印的不一样,主要是比如相邻的删除了,33,44 删除33 循环一次后44跑到33位置 ...

  8. day_5.12 py 老王开枪demo

    ps:2018-7-24 21:00:04 其实这部分主要是面向对象的复习!而不是面向过程 #!/usr/bin/env/python #-*-coding:utf-8-*- ''' 2018-5-1 ...

  9. 小白日记18:kali渗透测试之缓冲区溢出实例(二)--Linux,穿越火线1.9.0

    Linux系统下穿越火线-缓冲区溢出 原理:crossfire 1.9.0 版本接受入站 socket 连接时存在缓冲区溢出漏洞. 工具: 调试工具:edb: ###python在漏洞溢出方面的渗透测 ...

随机推荐

  1. Asp.net Core中使用Redis 来保存Session, 读取配置文件

    今天 无意看到Asp.net Core中使用Session ,首先要使用Session就必须添加Microsoft.AspNetCore.Session包,默认Session是只能存去字节,所以如果你 ...

  2. akka actors默认邮箱介绍

    1. UnboundedMailbox is the default unbounded MailboxType used by Akka Actors ”无界邮箱“ 是akka actors默认使用 ...

  3. Gradle Build Tool

    转自知乎: nonesuccess 通俗的说:gradle是打包用的. 你觉得解决你的问题了吗?如果没解决,那是你的问题提得不够好.比如我猜你应该提:为什么要打包发布,打包发布有几种常见方法,为什么这 ...

  4. C#中DataTable删除多条数据

    //一般情况下我们会这么删除 DataTable dt = new DataTable(); for (int i = 0; i < dt.Rows.Count; i++) { if (99 % ...

  5. 【转载】ASP.NET MVC的过滤器【Filters】

    文章来自: http://www.cnblogs.com/HopeGi/p/3342083.html 这篇对Filters讲的很详细.正好我自己也不用写了,真的很棒的一篇文章 APS.NET MVC中 ...

  6. C#:文件夹匹配

    //文件夹匹配:对比文件夹,相同的目录结构.所有文件名称小写相同,制定文件外的MD5值相同 ,则两个文件夹匹配成功! /// <summary> /// 批量匹配书籍H5资源包 /// & ...

  7. SNF快速开发平台MVC-EasyUI3.9之-ueditor富文本编辑在 asp.net MVC下使用步骤

    mvc项目中用到了这个富文本编辑就试着把遇到的问题个使用步骤在这里记录一下,希望大家少走弯路. 1.首先我们先下载net版本的uediot 2.然后把整个文档拷贝到我们的项目中,记得是整个 把下载的文 ...

  8. .Net可扩展的单据编号生成器-SNF.CodeRule--SNF快速开发平台3.2

    1.背景 在企业应用中单据编号的自定义是一个很常见的需求,如工号.业务单据编码等,能不能抽象一个通用的框架呢? 2.思路 这里的难点在于实现"解释器",比如将"前缀&qu ...

  9. SNF.CodeGenerator代码生成器前夕-代码生成器初始配置

    如果你是第一次使用SNF快速开发平台的话,第一次运行代码生成器的话,可以需要以下信息来帮助你快速进行配置和使用. 代码生成器在使用之前有几个地方需要配置,如果是第一次登录会提示无授权,弹出一个框填入授 ...

  10. 物联网架构成长之路(4)-EMQ插件创建

    1. 说明 以下用到的知识,是建立在我目前所知道的知识领域,以后如果随着知识的拓展,不一定会更新内容.由于不是EMQ公司的人,EMQ的文档又很少,很多知识点都是靠猜的.2. 一些资料 架构设计 htt ...