day 6 汽车4S店铺
1.版本1:大框架
class CarStore(object):
'''定义一个汽车店铺类'''
pass class Car(object):
'''定义一个汽车类'''
pass car_store = Carstore() car.move()
car.music()
car.stop()
2.版本2:买个汽车
class CarStore(object):
'''定义一个汽车店铺类'''
def order(self,money):
if money>10000:
#xxx = Car()
#return xxx
return Car() class Car(object):
'''定义一个汽车类'''
def move(self):
print("----我在跑--")
def music(self):
print("----播放音乐--")
def stop(self):
print("----停车区--") car_store = CarStore()
car = car_store.order(100000) car.move()
car.music()
car.stop()
----我在跑--
----播放音乐--
----停车区--
3.版本3:买个奇瑞qq
class CarStore(object):
'''定义一个汽车店铺类'''
def order(self,car_type): #耦合性高
if car_type == "奇瑞QQ":
return QQ()
elif car_type == "帝豪":
return King() class Car(object):
'''定义一个汽车类'''
def move(self):
print("----我在跑--")
def music(self):
print("----播放音乐--")
def stop(self):
print("----停车区--") class QQ(Car):
pass
class King(Car):
pass car_store = CarStore()
car = car_store.order("奇瑞QQ") car.move()
car.music()
car.stop()
----我在跑--
----播放音乐--
----停车区--
4.版本4:通过函数def 解耦
class CarStore(object):
'''定义一个汽车店铺类'''
def order(self,car_type):
return select_car_type(car_type) def select_car_type(car_type):
if car_type == "奇瑞QQ":
return QQ()
elif car_type == "帝豪":
return King() class Car(object):
'''定义一个汽车类'''
def move(self):
print("----我在跑--")
def music(self):
print("----播放音乐--")
def stop(self):
print("----停车区--") class QQ(Car):
pass
class King(Car):
pass car_store = CarStore()
car = car_store.order("奇瑞QQ") car.move()
car.music()
car.stop()
----我在跑--
----播放音乐--
----停车区--

开发文档:
def select_car_type(car_type)
功能:返回一个汽车对象的引用
参数:需要得到汽车的类型
5.版本5:完成CarStore 和Car的分离 简单工厂模式
class CarStore(object):
'''定义一个汽车店铺类'''
def __init__(self):
self.factory = Factory() #工厂属性= Factory类实例化的对象
def order(self,car_type):
return self.factory.select_car_type(car_type) class Factory(object):
def select_car_type(self,car_type):
if car_type == "奇瑞QQ":
return QQ()
elif car_type == "帝豪":
return King()
elif car_type == "byd":
return Byd() class Car(object):
'''定义一个汽车类'''
def move(self):
print("----我在跑--")
def music(self):
print("----播放音乐--")
def stop(self):
print("----停车区--") class QQ(Car):
pass
class King(Car):
pass
class Byd(Car):
pass car_store = CarStore()
car = car_store.order("奇瑞QQ") car.move()
car.music()
car.stop()

6.工厂方法模式
1)版本1:
class Store(object):
def order(self,car_type):
return self.factory.select_car_type(car_type) class CarStore(Store):
'''定义一个汽车店铺类'''
def __init__(self):
self.factory = Factory() class BMWCarStore(Store):
def __init__(self):
self.factory = BMWFactory() class BMWFactory(object):
def select_car_type(self):
pass class Factory(object):
def select_car_type(self,car_type):
pass car_store = CarStore()
car = car_store.order("奇瑞QQ")
2)版本2:在父类定义接口,在子类实现
class Store(object):
def select_car(self):
pass def order(self,car_type):
return self.select_car(car_type) class CarStore(Store):
def select_car(self,car_type):
return Factory().select_car(car_type) class Factory(object):
def select_car(self,car_type):
pass car_store = CarStore()
car = car_store.order("奇瑞QQ") class BMWCarStore(Store):
def select_car(self,car_type):
return BMWFactory().select_car_type(car_type) class BMWFactory(object):
def select_car_type(self):
pass

3)版本3:优化
class Store(object):
'''定义一个父类Store'''
def select_car(self):
pass def order(self,car_type):
return self.select_car(car_type) #父类调用接口 class CarStore(Store):
'''定义一个汽车类子类'''
def select_car(self,car_type):
return Factory().select_car(car_type) #子类实现 class Factory(object):
'''定义一个工厂类,进行判断'''
def select_car(self,car_type):
if car_type == "奇瑞QQ":
return "---QQ---"
elif car_type == "帝豪":
return "---king---"
elif car_type == "byd":
return "---byd---" car_store = CarStore()
car = car_store.order("奇瑞QQ")
工厂方法模式的定义
定义了一个创建对象的
接口(可以理解为函数),但由子类决定要实例化的类是哪一个,工厂方法模式让类的实例化推迟到子类,抽象的CarStore提供了一个创建对象的方法createCar,也叫作工厂方法。子类真正实现这个createCar方法创建出具体产品。 创建者类不需要直到实际创建的产品是哪一个,选择了使用了哪个子类,自然也就决定了实际创建的产品是什么。
day 6 汽车4S店铺的更多相关文章
- JAVA汽车4S店管理系统
JAVA汽车4S店管理系统源码(前台+后台)分为这5个大模块 系统设置 整车销售辅助销售汽修管理 汽修统计1.经理管理(增加 和删除功能) 表设计经理编号经理名年龄性别2.业务员管理(增删改查) ...
- 汽车4S店经验指标完成情况报表制作分享
集团公司一般为了加强下属的经营管理,以及项经营指标完情况,需要制定一些报表.我们平时也经常遇到这种情况,而这些报表要包括什么内容呢?该怎么制作呢?用什么制作呢?今天小编就以4s店为例,分享给大家一个报 ...
- 汽车之家店铺数据抓取 DotnetSpider实战[一]
一.背景 春节也不能闲着,一直想学一下爬虫怎么玩,网上搜了一大堆,大多都是Python的,大家也比较活跃,文章也比较多,找了一圈,发现园子里面有个大神开发了一个DotNetSpider的开源库,很值得 ...
- 汽车之家店铺数据抓取 DotnetSpider实战
一.背景 春节也不能闲着,一直想学一下爬虫怎么玩,网上搜了一大堆,大多都是Python的,大家也比较活跃,文章也比较多,找了一圈,发现园子里面有个大神开发了一个DotNetSpider的开源库,很值得 ...
- 转 【O2O案例】汽车后市场垂直化电子商务:平业模式解析
核心提示:一.商业模式简介.汽车后市场垂直化电子商务是我在2010年初开始筹划,起因是在淘宝工作期间运营汽车类目后遇到很多问题无决,由于 一.商业模式简介. 汽车后市场垂直化电子商务是我在2010年初 ...
- 类设计:设计卖车的4S店
class Car(object): # 定义车的方法 def move(self): print('---车在移动---') def stop(self): print('---停车---') # ...
- 调研助力4S店,解码困境谜团
关键词————4S店.汽车.销售.精准营销.闭环.用户满意度.精细化管理 一.背景 4S店是“四位一体”的汽车销售专卖店,包括了整车销售.零配件供应.售后服务.信息反馈四项功能. 信息化管理 精细化管 ...
- 【转载】TalkingData首席金融行业专家鲍忠铁:18亿数据解读移动互联网
http://www.36dsj.com/archives/33417 鲍忠铁:大家下午好! 今天我会讲三个议题,一是用18亿数据解读现在移动互联网的生态圈.二是看看数据有什么样的应用.三是大数据的隐 ...
- 【转】物业管理与移动互联网科技|微信公众平台,物业app,物业O2O
[导语]当下,物业管理行业正在接受新科技浪潮的冲击和洗礼,业界企业纷纷探索物业服务的新发展模式.云服务.微社区.微信公众平台.app等,这些本来陌生的词汇在物业管理行业变得耳熟能详.在借助科技手段拓展 ...
随机推荐
- css3鼠标经过出现转圈菜单(仿)
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- centos 7.0 查看selinux状态|关闭|开启
Linux在安装好之后通常SELinux都是出于默认开启的状态,开启的情况下会导致一些服务的安装不成功. 在不需要的情况下完全可以关闭掉,下面是在centos 7.0里面如何查看,关闭selinux. ...
- spring的权限控制,过滤器
spring的过滤器可以实现登录状态问题 1.创建一个AccessFilter类,基础代码 package com.ujia.util.access; import javax.servlet.htt ...
- SHA1WithRSA
SHA1WithRSA:用SHA算法进行签名,用RSA算法进行加密. 算法说明: 在对进行SHA1算法进行签名后,要求对签名后的数据进行处理,而不是直接进行RSA算法进行加密. 要求把SHA1签名 ...
- P2059 [JLOI2013]卡牌游戏
题目描述 N个人坐成一圈玩游戏.一开始我们把所有玩家按顺时针从1到N编号.首先第一回合是玩家1作为庄家.每个回合庄家都会随机(即按相等的概率)从卡牌堆里选择一张卡片,假设卡片上的数字为X,则庄家首先把 ...
- virtualbox+vagrant学习-4-Vagrantfile-7-WinRM Settings
WinRM Settings 配置命名空间config.winrm config.winrm配置与如何通过winrm配置vagrant访问你的Windows客户相关.与大多数vagrant设置一样,默 ...
- Dubbo实践(十六)集群容错
Dubbo作为一个分布式的服务治理框架,提供了集群部署,路由,软负载均衡及容错机制.下图描述了Dubbo调用过程中的对于集群,负载等的调用关系: 集群 Cluster 将Directory中的多个In ...
- ansible copy 模块 changed false 没有变化
在分发配置文件的时候,我用命令ansible big_hosthub -m copy -a "src=/home/clouder/deploy-conf.xml dest=/home/cl ...
- a、button、input点击获取焦点时出现蓝色边框,如何去掉
a,button,input{ -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -webkit-user-modify: read-write-plain ...
- CF451E Devu and Flowers(组合数)
题目描述 Devu想用花去装饰他的花园,他已经购买了n个箱子,第i个箱子有fi朵花,在同一个的箱子里的所有花是同种颜色的(所以它们没有任何其他特征).另外,不存在两个箱子中的花是相同颜色的. 现在De ...