百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python设计模式:门面模式(python设计软件界面)

off999 2024-10-27 11:57 44 浏览 0 评论

引言

??打个还算比较形象的比喻吧,我们把门面比作建筑工地上的建筑物的表面,可以是贴有横幅,如:XXXX铁路工程局,这种比较醒目的一面,能更吸引人注意力,当人们从建筑物旁边经过时,可以看到其外部的面貌,此时并不了解其本身结构的复杂性。
??在程序里门面在隐藏内部复杂性的同时,也为外部客户端提供了一个可以轻松访问的接口。


结构型设计模式

门面模式与单例模式,工厂模式不同,它是一种结构型模式。

  • 结构型模式描述如何将对象和类组合成更大的结构。
  • 结构型模式是一种能够简化设计工作的模式,它能找出更简单的方法来认识或表示实体之间的关系。
  • 结构型模式是类和对象模式的综合体。类模式通过继承来描述抽象,从而提供更有用的程序接口,而对象模式描述了如何将对象联系起来从而组合成更大的对象。


理解门面设计模式

  • 它为子系统中的一组接口提供一个统一的接口,并定义一个高级接口来帮助客户端通过更简单的方式使用子系统。
  • 门面所解决的问题是,如何用单个接口对象来表示复杂的子系统,它实际上并不是封装子系统,而是对底层子系统进行组合。
  • 促进实现子系统与客户端的解耦。


下图或许能帮助你更好的理解:

这里面有三个参与者:门面,客户端,系统


客户端

会实例化门面
会向门面提出请求,去让子系统完成相应的功能
客户端与门面进行交互,这样就可以轻松地与子系统进行通信并完成工作事项,而不必担心系统的复杂性。


门面

一个接口,知道某个请求应该交由哪个子系统处理
通过组合的方式将客户端的请求委派给相应的子系统对象


系统

实现子系统的功能,由一组负责不同任务的类来表示
处理门面对象分配的工作,但并不知道门面也不引用它


简单理解:整个模式的执行方式就是,门面接收客户端的需求后,去安排系统完成工作。

举个生活中常见的例子:某天,你和朋友一起去肯德基,你向服务员点了一份XXX套餐,套餐里有一杯冰可乐,一个汉堡,一份薯条,一份麻辣鸡翅,这时服务员听到你的点餐请求后,扭头告诉后厨需要一份XXX套餐,于是后厨有4个人开始行动,一个做可乐,一个做汉堡,一个做薯条,一个做鸡翅。


在这个例子里,你就是客户端,服务员为门面,后厨的4个人做东西为4个子系统,他们组合合作完成这份套餐的制作。这样看来,门面模式的理解便非常简单清晰了。


Python 实现门面模式

#门面
class ProjectProcess(object):
    def __init__(self):
        print("get the project of the process")

    def get_process(self):
        self.req=Requirement()
        self.req.getRequirementProcess()

        self.dev=Develop()
        self.dev.getDevelopProcess()

        self.test=Test()
        self.test.getTestProcess()

#子系统
class Requirement(object):
    def __init__(self):
        print("return the requirement of process")

    def getRequirementProcess(self):
        print("the requirement was complement 90%")


class Develop(object):
    def __init__(self):
        print("return the requirement of process")

    def getDevelopProcess(self):
        print("the develop was complement 30%")


class Test(object):
    def __init__(self):
        print("return the requirement of process")

    def getTestProcess(self):
        print("the test was complement 10%")

#客户端
if __name__ == '__main__':
    pp = ProjectProcess()
    pp.get_process()


最少知识原则

(1)、门面能够将客户端与实现具体功能的子系统解耦,其背后的设计原理即最少知识原则。


(2)、在设计系统时,对于创建的每个对象,都应该考察与之交互的类的数量,以及交互的方式避免创建许多彼此紧密耦合的类。若类之间存在大量的依赖关系,系统就会变得难以维护。

相关推荐

qq加速器(Bill bill加速器)

可能原因如下:1、官方服务器正在更新升级,为了给用户更好的体验,系统的维护是必不可少的。2、可以检查是否是网络出现了问题,可以更换网络是否正常。3、很多软件都在维护,包括QQ,微信,微博等,只能是等维...

进入qq安全中心的官网(qq安全中心入口)

1、以电脑版QQ为例,成功登录QQ后,点击界面左下角的“主菜单”图标;2、在弹出框里点击“安全”,再在右边的弹出框里点击“安全中心首页”;3、就会跳转到QQ安全中心的网页了,在里面进行修改密码、我的密...

pp助手软件苹果版下载(pp助手苹果版免费下载)

工具:ipadmini41、打开ipad的桌面,点击safari浏览器进入。2、然后进入以后,在上面的搜索框里面,搜索z.25pp.com-pp助手,然后点击进入。3、然后进入以后就是安装pp助手的...

免费声卡软件下载(手机免费声卡软件下载)

应用商店上方下载。。第一步:打开浏览器,在网页中搜索“酷狗音乐播放器”,然后可以看到下面的页面。;第二步:选择第一个搜索结果(官网)中根据你要下载的类型切换电脑版、安卓版、苹果版,之后直接下载。;第三...

qq游戏网页版在线登录(qq游戏网页版在线登录官网)
qq游戏网页版在线登录(qq游戏网页版在线登录官网)

这个产品已经下线了啊扩展:WebQQ腾讯公司推出的使用网页方式上QQ的服务,特点是无需下载和安装QQ软件,只要能打开WebQQ的网站就可以登录QQ与好友保持联系。具有Web产品固有的便利性,同时在Web上最大限度的保持了客户端软件的操作习惯...

2026-02-01 01:03 off999

云电脑在线使用(云电脑怎样使用)

使用云电脑的步骤如下:1.注册:首先要有一个账号,然后登录云电脑的官网,进行注册,注册完成后,就可以正式使用云电脑了。2.安装:根据操作系统的不同,下载对应的云电脑客户端,安装完成后,登录账号,即可使...

pp手机助手安卓版官网(pp手机助手官网首页)

你好,PP助手无法连接安卓手机可能出现以下情况:1.请确保手机与电脑连接的USB线正常,并选择正确的传输模式(如文件传输模式)。2.确保你的手机已经开启了USB调试模式。可以在手机设置中的开发者选...

windows7安装版系统下载(win7安装版安装步骤)

1、win7系统装完后需要占用C盘空间10-15GB,如果把常用软件也安装到C盘,大小超过20+。  2、在分区的时候根据硬盘大小,如果硬盘相对较小,一般建议设置50G,最低不能低于30G。因...

韩剧网(韩剧网韩剧tv最新韩剧免费观看)

不收费,终身不收费~连续剧、综艺、歌曲,通通不要钱。之前好像是技术问题,现在恢复了。其它诸如人人视频、圈粉TV也都可以看韩剧哦。韩剧网有搜索页面的呀,搜索一下就可以了,不过好像《制作人》和玄彬的...

跳一跳游戏(跳一跳游戏是什么时候出来的)

GiveItUP《GiveItUP》是一款由Invictus推出的益智跑酷游戏。游戏与传统的跑酷类游戏最大的区别在于,游戏融入了高难度的节奏性挑战。红色火焰躲避技巧:红色火焰在游戏中是最常见的一个障碍...

什么是oa办公系统(办公oa系统的好处)

OA是OfficeAutomation的简写,就是办公自动化。所谓OA系统就是用网络和OA软件构建的一个单位内部的办公通信平台,用于辅助办公。OA系统完成单位内部的邮件通信、信息发布、文档管理、工作...

手机万能mp4转换器(手机万能mp4转换器下载)

1你需要先下载并安装一个叫格式工厂的软件。2然后打开->mp4。3点击添加文件的选项。4然后选择需要转换的视频,点击确定。5点击确定之后,再添加到转换列表中就可以。6再点...

迅雷beta官网(迅雷beta官方网)

若手机不能安装软件/游戏,建议:1.检查“未知来源”设置是否开启。2.查看下载的软件格式是否为机器所支持的。安卓系统手机支持的软件格式为.APK格式。3.下载软件时请阅读软件详情,查看是否对机器操作系...

私人家庭影院hd免费版游戏评测

《海上钢琴师》是由朱塞佩·托纳托雷执导,蒂姆·罗斯、比尔·努恩、梅兰尼·蒂埃里主演的剧情、音乐、爱情片。该片讲述了一个被命名为“1900”的弃婴在一艘远洋客轮上与钢琴结缘,成为钢琴大师的传奇故事。该片...

题库网(题库网站有哪些)

学科网的试卷有续费的和不需要交费的两类试卷,如果你是学科网的用户,可以下载试卷,还可以组卷,对于我们一线的老师来讲,这很方便的,只要学校肯出钱,在学科网前,全校的老师就可以注册免费试用学科,网上所有的...

取消回复欢迎 发表评论: