facade模式,即门面模式,也称外观模式,这个模式的核心思想是使用facade对象为外部客户端提供一个统一的访问一组子系统的接口,即客户端不会直接与各个子系统交互,而是通过facade对象与各个子系统进行通信并使用子系统的相应功能。
创新互联建站长期为上千多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为英山企业提供专业的成都网站制作、成都网站建设,英山网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。可以通过下面这个图来理解facade模式:
子系统:各个子系统原则上都是独立存在的,互不干涉的,重要的是它们都不会去关注facade对象,更不会去引用facade对象。
facade:facade对象负责将各个子系统组合成在一起,并为外部提供一个“舒适的外观”和访问接口。
客户端:客户端通过facade对象去和各个子系统进行交互,不会直接去和各个子系统打交道。
简单示例:
class Shampoo: """子系统:卖各种洗发露""" def __init__(self): print('We sell all kinds of shampoo!') def piaorou_500ml(self, number): print('This is 500ml piaorou shampoo! Total: %d' % number) class WashingPowder: """子系统:卖各种洗衣粉""" def __init__(self): print('We sell all kinds of washing powder!') def libai_3kg(self, number): print('This is 3kg libai washing powder! Total: %d' % number) class Tissue: """子系统:卖各种抽纸""" def __init__(self): print('We sell all kinds of tissue!') def jierou_200sheets(self, number): print('This is 200 sheets tissue! Total: %d' % number) class Salesman: """facade:售货员""" def __init__(self): self.shampoo = Shampoo() self.washing_powder = WashingPowder() self.tissue = Tissue() print('What can I help you?') def sale_for_family(self): """家庭套餐""" self.shampoo.piaorou_500ml(1) self.washing_powder.libai_3kg(2) self.tissue.jierou_200sheets(6) class UncleLi: """客户端:李大爷""" def __init__(self): print('I want bug something!') def buy_for_family(self): """直接从售货员那里购买家庭套餐""" sale_man = Salesman() sale_man.sale_for_family()
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。