标签:ESS alt 准备工作 餐饮 模式 print nbsp 系统 事务
一、门面模式的理解
门面模式是一种结构型设计模式,它主要是为了完成:
这个模式有三个参与者:
二、门面模式的实现
现实世界中有很多门面模式,比如,你现在要开一个大型生日party,那么可能需要准备酒店、歌唱团之类的东西,但是你可能嫌麻烦,此时可以找一个专门负责此类事务的机构负责,而你只需要问他是否已经筹备好即可。这可以比如一个门面模式:
现在利用python对上述的实例进行模拟,显然有一个门面类EventManager,它简化了你的工作,完成与子系统的交流,如下所示,生日party的门面需要与酒店与歌唱团交流。
class EventManager: def __init__(self): print("I talk to folks!") def arrange(self): self.wineshop=WineShop() self.wineshop.bookWineShop() self.singgroup=SingGroup() self.singgroup.setSingType()
子系统就是酒店系统与歌唱团系统,它们自己将自己的服务准备完成。
class WineShop: def __init__(self): print("arange of WineShop for birthday!") def __isAliable(self): """ 酒店是否还有可用的房间 :return: """ return True def bookWineShop(self): """ 如果有可用房间就进行预定 :return: """ if self.__isAliable(): print("book success!") class SingGroup: def __init__(self): print("arange of SingGroup for birthday!") def setSingType(self): """ 歌唱团为生日party准备的音乐 :return: """ print("Classical will be played")
而此时你可以很悠闲,当想知道酒店以及歌唱团准备的怎么样,可以直接询问机构,它会告诉你。
class You: def __init__(self): print("Birthday arrangements? ") def askEventManager(self): print("contact EventManager") em=EventManager() em.arrange() you=You() you.askEventManager()
这样就完成了一个门面模式,门面模式设计的原理就是只是最少原则,减少对象之间的交互,在设计系统时,应该考虑与之交互类的数量以及交互的方式,这样避免了类与类之间紧密耦合的情况。
标签:ESS alt 准备工作 餐饮 模式 print nbsp 系统 事务
原文地址:https://www.cnblogs.com/shenjianping/p/11079923.html