2011软考软件设计师知识点:设计模式与Java
什么是设计模式
20世纪60年代的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上。随着软件系统规模越来越大、越来越复杂,整个系统的结构和规格说明也显得越来越重要。面对日益复杂的软件系统,人们开始认识到,要真正实现软件的工业化生产方式,达到软件产业发展所需要的软件生产率和质量,软件复用是一条现实可行的途径。
1995年,《Design Pattern》(中译"设计模式")一书问世,成为面向对象编程中使用模式化方法的开创性著作。这本书对于软件实践中的一些不断变换面孔重复出现、但特征和解决方案的本质却十分类似的问题进行了总结归纳,提炼出23个具有代表性的模式。设计模式本身并不是一种具体的"技术",它讲述的是思想。它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧,还让开发人员能够真正掌握接口或抽象类的应用。更重要的是,该书提炼的这些设计模式反复强调的宗旨是尽量提高程序的使用率,让程序尽可能的可重用。
Java中的设计模式
Java语言作为面向对象编程语言的优秀代表,它拥有简单易用的特性,以及强大的功能,非常有利于设计模式的实施。Java发展到现在,按应用主要分为三大块:J2SE、J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入式系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于大型分布式网络程序的开发,如电子商务网站和ERP系统。Java技术已经逐渐成为电子商务主流技术之一。在Java的各个平台中,设计模式有很多精彩的应用,而且随着Java技术的不断发展,设计模式也在不断丰富。
J2SE与设计模式
早期发布的设计模式主要来自桌面应用软件的开发经验。在《Design Pattern》一书中,所有的模式都是通过面向桌面应用的窗口程序来举例说明的。相应的在J2SE中,贯穿了设计模式的思想,尤其是大量运用了MVC模式。
所谓MVC模式,是指模型(Model)、视图(View)和控制(Control)相分离的设计方案。模型(Model)是执行某些任务的代码。至于这些任务以什么形式显示给用户,却并不是模型所关注的问题。模型只有纯粹的功能性的接口,也就是一系列的公开方法。这些方法有的是取值方法,让系统其它部分可以得到模型端的内部状态参数;有的是改值方法,允许外部修改模型的内部状态。
视图决定模型以什么样的方式显示给用户。一个模型可以对应多个视图,那么对于视图而言,模型就是可重用的代码。一般来说,模型内部必须留下所有对应视图的记录,以便在模型的状态发生改变的时候,可以通知视图。模型的状态一旦发生改变,所有对应的视图都能够得到更新。
控制是和视图联合使用的。用户在与视图发生交互的时候,是通过控制器来操纵模型,从而向模型传递数据、更新模型的状态。
例如,一个表格数据体可以看作是一个模型,它可以对应成为多种视图,比如饼图、棒图或者直接显示成为一个表格。用户通过键盘和鼠标与视图进行交互,从而激发相应的控制器改变表格数据。一旦表格数据发生变化,视图会得到通知,进而更新显示的形式。
MVC模式是最著名的模式之一。J2SE中一些复杂的显示控件(如表格、列表、树等),都使用了这种模式,从而使得设计结构非常清晰而且灵活。当然,也有人提出,MVC模式不应当被称为"设计模式",而应当属于"架构模式"。它可以看作若干个设计模式的组合,并且在不同的应用环境中衍生出了其它的一些设计模式。但是在各种讨论中,MVC模式还是常常被当作设计模式。
编辑推荐:
温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)
点击加载更多评论>>