python设计模式---结构型之门面模式
门面,系统,客户端~
from django.test import TestCase
class Hotelier:
def __init__(self):
print('Arranging the Hotel for Marriage? ---')
def _is_available(self):
print('Is the Hotel free for the event on given dat?')
return True
def book_hotel(self):
if self._is_available():
print('Registered the Booking\n')
class Florist:
def __init__(self):
print('Flower Decorations for the Events? ---')
def set_flower_requirements(self):
print('Carnations, Roses and Lilies would be used for Decorations\n')
class Caterer:
def __init__(self):
print('Food Arrangements for the Event ---')
def set_cuisine(self):
print('Chinese & Continental Cuisine to be served\n')
class Musician:
def __init__(self):
print('Musical Arrangements for the Marriage ---')
def set_music_type(self):
print('Jazz and Classical will be played\n')
class EventManager:
def __init__(self):
print('Event Manager: Let me talk to the folks\n')
def arrange(self):
self.hotelier = Hotelier()
self.hotelier.book_hotel()
self.florist = Florist()
self.florist.set_flower_requirements()
self.caterer = Caterer()
self.caterer.set_cuisine()
self.musician = Musician()
self.musician.set_music_type()
class You:
def __init__(self):
print('Your:: Whoa! Marriage Arrangements???!!!')
def ask_event_manager(self):
print('You:: Let us Contack the Event Manager\n')
em = EventManager()
em.arrange()
def __del__(self):
print('Your:: Thanks to Event Manager, all preparations done! Phew!')
you = You()
you.ask_event_manager()
Your:: Whoa! Marriage Arrangements???!!! You:: Let us Contack the Event Manager Event Manager: Let me talk to the folks Arranging the Hotel for Marriage? --- Is the Hotel free for the event on given dat? Registered the Booking Flower Decorations for the Events? --- Carnations, Roses and Lilies would be used for Decorations Food Arrangements for the Event --- Chinese & Continental Cuisine to be served Musical Arrangements for the Marriage --- Jazz and Classical will be played Your:: Thanks to Event Manager, all preparations done! Phew!
python设计模式---结构型之门面模式的更多相关文章
- python设计模式---结构型之代理模式
主要想着nginx:) from abc import ABCMeta, abstractmethod # 结构型设计模式---代理模式 class Actor: def __init__(self) ...
- JAVA设计模式 5【结构型】代理模式的理解与使用
今天要开始我们结构型 设计模式的学习,设计模式源于生活,还是希望能通过生活中的一些小栗子去理解学习它,而不是为了学习而学习这些东西. 结构型设计模式 结构型设计模式又分为 类 结构型 对象 结构型 前 ...
- 【结构型】Flyweight模式
享元模式的主要目的.意图是为对象的大量使用提供一种共享机制.该模式的思想重在复用.共享复用.像文字.列表中的格子等这类多数都是需要考虑复用技术,否则必将大量耗费内存空间而使资源以及性能等大量耗费.该模 ...
- python设计模式之模型-视图-控制器模式
python设计模式之模型-视图-控制器模式 关注点分离( Separation of Concerns, SoC)原则是软件工程相关的设计原则之一. SoC原则背后的思想是将一个应用切分成不同的部分 ...
- 设计模式-结构型模式,python组合模式
设计模式上大的方向上分继承和组合,就是类模式和对象模式.此篇的组合模式非继承和组合概念中的组合.桥接 策略 代理 装饰者都用了组合,此组合非彼组合. 组合模式 组合模式(Composite Patte ...
- 设计模式-结构型模式,python桥接模式
桥接模式 桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化.这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦. 这种模式涉及到一个作为桥接 ...
- 设计模式 结构型模式 外观模式(Facade Pattern)
在软件开发过程中,客户端程序经常会与复杂系统的内部子系统进行耦合,从而导致客户端程序随着子系统的变化而变化. 这时为了将复杂系统的内部子系统与客户端之间的依赖解耦,从而就有了外观模式,也称作 ”门面“ ...
- Java设计模式——结构型模式
Java设计模式中共有7种结构型模式:适配器模式.装饰模式.代理模式.外观模式.桥接模式.组合模式.享元模式.其中对象的适配器模式是各种模式的起源,其关系如下面的图:1.适配器模式 适配器模式将某个类 ...
- 【设计模式】结构型03外观模式(Facade Pattern)
[设计模式]结构型02装饰模式(Decorator Pattern) 意图:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 主要解决:降低访问 ...
随机推荐
- 解决PHP乱码
如果你的PHP页面出现了乱码,之需要在页面的开始处加入下面代码就可以了. <?php header("content-type:text/html;charset=utf-8" ...
- 单双通道对RTX有何影响?结果出乎意料
此前,我们在统计RTX游戏本数据时发现了一个有趣的现象,游戏本上的RTX显卡性能出现了明显断层,具体来说就是RTX 2080的性能要远好于RTX 2080 Max-Q,两者差距幅度高达37%,详细测试 ...
- 利用window.performance.timing进行性能分析
性能分析... window.performance.timing中相关属性语义: // .navigationStart 准备加载页面的起始时间 // .unloadEventStart 如果前一个 ...
- bzoj5028小Z的加油店(线段树+差分)
题意:维护支持以下两种操作的序列:1 l r询问a[l...r]的gcd,2 l r x把a[l...r]全部+x 题解:一道经典题.根据gcd(a,b)=gcd(a-b,b)以及区间加可知,这题可以 ...
- PMP备考资料和备考经验分享(基于PMP第六版)
之前有不少小伙伴私信我说,你PMP考过了,有没有报班呢,有没有自己看的资料,有没有一些经验分享,今天在这里,就统一给大家分享一下,以便大家备考和学习PMP. 先说我自己的情况,我本身是从事项目管理的, ...
- 分布式监控系统开发【day38】:报警自动升级代码解析及测试(八)
一.报警自动升级代码解析 发送邮件代码 def action_email(self,action_obj,action_operation_obj,host_id,trigger_data): ''' ...
- 第九节:JWT简介和以JS+WebApi为例基于JWT的安全校验
一. 简介 1. 背景 传统的基于Session的校验存在诸多问题,比如:Session过期.服务器开销过大.不能分布式部署.不适合前后端分离的项目. 传统的基于Token的校验需要存储Key-Val ...
- JavaScript数据类型 Boolean布尔类型
前言 布尔值Boolean类型可能是三种包装对象Number.String和Boolean中最简单的一种.Number和String对象拥有大量的实例属性和方法,Boolean却很少.从某种意义上说, ...
- 深入学习CSS外边距margin(重叠效果,margin传递效果,margin:auto实现块级元素水平垂直居中效果)
前言 margin是盒模型几个属性中一个非常特殊的属性.简单举几个例子:只有margin不显示当前元素背景,只有margin可以设置为负值,margin和宽高支持auto,以及margin具有非常奇怪 ...
- redis远程连接报错记录
错误如下 redis可视化工具连接测试 telnet ip 6379 修改关键参数如下 #开通外网访问 # bind 127.0.0.1 #以后台方式运行 daemonize no #取消保护模式,保 ...