1 / 10
文档名称:

Python设计模式:用模式改变软件设计.doc

格式:doc   大小:139KB   页数:10页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Python设计模式:用模式改变软件设计.doc

上传人:分享精品 2017/7/28 文件大小:139 KB

下载得到文件列表

Python设计模式:用模式改变软件设计.doc

相关文档

文档介绍

文档介绍:在软件设计领域中,每一个设计模式都系统地命名、解释和评价了面向对象系统中的一个重要的和可复用的设计。这样,我们只要搞清楚这些设计模式,就可以完全或者说很大程度上吸收了那些蕴含在模式中的宝贵经验,从而对软件体系结构有了比较全面的了解。
51CTO推荐阅读:Python闭包的概念、形式与应用
更加重要的是,这些模式都可以直接用来指导面向对象系统设计中至关重要的对象建模问题,实际工作中一旦遇到具有相同背景的场合,只需要简单地套用这些模式就可以了,从而省去了很多摸索工作。
经典的设计模式MVC
在长期的软件实践过程中,人们逐渐总结出了一些实用的设计模式,并将它们应用于具体的软件系统中,出色地解决了很多设计上的难题。源于Smalltalk,并在Java中得到广泛应用的模型-视图-控制器(Model-View-Controller,MVC)模式,是非常经典的一个设计模式,通过它你可以更好地理解"模式"这一概念。
MVC模式通常用在开发人机交互软件的时候,这类软件的最大特点就是用户界面容易改变,例如,当你要扩展一个应用程序的功能时,通常需要修改菜单来反映这种变化。如果用户界面和核心功能紧紧交织在一起,要建立这样一个灵活的系统通常是非常困难的,因为很容易产生错误。为了更好地开发这样的软件系统,系统设计师必须考虑下面两个因素:
◆用户界面应该是易于改变的,甚至在运行期间也是有可能改变的;
◆用户界面的修改或移植不会影响软件的核心功能代码。
为了解决这个问题,可以采用将模型(Model)、视图(View)和控制器(Controller)相分离的思想。在这种设计模式中,模型用来封装核心数据和功能,它独立于特定的输出表示和输入行为,是执行某些任务的代码,至于这些任务以什么形式显示给用户,并不是模型所关注的问题。模型只有纯粹的功能性接口,也就是一系列的公开方法,这些方法有的是取值方法,让系统其它部分可以得到模型的内部状态,有的则是置值方法,允许系统的其它部分修改模型的内部状态。
视图用来向用户显示信息,它获得来自模型的数据,决定模型以什么样的方式展示给用户。同一个模型可以对应于多个视图,这样对于视图而言,模型就是可重用的代码。一般来说,模型内部必须保留所有对应视图的相关信息,以便在模型的状态发生改变时,可以通知所有的视图进行更新。
控制器是和视图联合使用的,它捕捉鼠标移动、鼠标点击和键盘输入等事件,将其转化成服务请求,然后再传给模型或者视图。整个软件的用户是通过控制器来与系统交互的,他通过控制器来操纵模型,从而向模型传递数据,改变模型的状态,并最后导致视图的更新。
MVC设计模式将模型、视图与控制器三个相对独立的部分分隔开来,这样可以改变软件的一个子系统而不至于对其它子系统产生重要影响。例如,在将一个非图形化用户界面软件修改为图形化用户界面软件时,不需要对模型进行修改,而添加一个对新的输入设备的支持,则通常不会对视图产生任何影响。应用了MVC设计模式的软件系统,其基本的实现过程是:
;
,并将它们与模型相关联;
;
,模型会通知与之相关的视图进行更新。
如果用UML来表示MVC设计模式,则如图1所示:
Python与设计模式
尽管设计模式的目

最近更新

2024年亲子活动邀请函(15篇) 23页

2024年亲人作文500字 7页

荔枝项目商业计划书 6页

茶花花卉项目融资计划书 7页

茶理坞项目融资方案 6页

刻章章法市公开课获奖教案省名师优质课赛课一.. 4页

2024年产品购销合同[精选] 45页

初中项链市公开课获奖教案省名师优质课赛课一.. 5页

2024年产品设计制作合同书 10页

花卉网店营销项目商业计划书 6页

2024年产品合同模板集锦6篇 20页

初中作文市公开课获奖教案省名师优质课赛课一.. 6页

2024年产品代理合同范本15篇 74页

创艺宝贝市公开课获奖教案省名师优质课赛课一.. 4页

创意水粉市公开课获奖教案省名师优质课赛课一.. 4页

分数的加减市公开课获奖教案省名师优质课赛课.. 5页

分式整章市公开课获奖教案省名师优质课赛课一.. 4页

2024年交通安全教育家长会的讲话稿 8页

减肥瘦身市公开课获奖教案省名师优质课赛课一.. 4页

2024年交通安全作文实用(2篇) 3页

2024年交通事故赔偿达成协议书(精选11篇) 16页

【部编版】小学语文一至六年级语文必背内容整.. 16页

项目部主要人员职责分工情况表 2页

动物防疫与检疫实训大纲 6页

小学支部主题党日会议记录 4页

入团积极分子谈话记录内容范文优秀5篇 12页

兽医学实验指导书 39页

2021年新版公共场所集中空调通风系统卫生规范.. 34页

工程经济学案例分析 15页

共和县2010 年麻疹疫情分析的论文 3页