01Java语言特性与设计模式

上传人:少*** 文档编号:243155204 上传时间:2024-09-17 格式:PPT 页数:31 大小:366.50KB
返回 下载 相关 举报
01Java语言特性与设计模式_第1页
第1页 / 共31页
01Java语言特性与设计模式_第2页
第2页 / 共31页
01Java语言特性与设计模式_第3页
第3页 / 共31页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,让资金管理得更好!,Java,语言特性与设计模式,内部培,训,深圳市拜特科技股份有限公司,技术发展部,-,桂艳军,目录,让资金管理得更好!,第一部分,程序设计语言及其依赖的环境第二部分,程序设计语言的发展简史,第三,部分,Java语言和Java平台,第四部分,如何理解设计模式,第五部分,开始迈进JavaEE,第一部分,程序设计语言及其依赖的环境,让资金管理得更好!,1.冯诺依曼计算机及其体系结构,冯诺依曼首先提出了“存储程序”的思想,大大提高了计算机的速度。后人按照这种思想和结构设计的计算机称为冯诺依曼计算机,。,“存储程序”思想可以简化概括为3点:,(1)计算机应用包括运算器、控制器、存储器、输入/输出设备。,(2)计算机内部应采用二进制来表示指令和数据。,(3)将编制好的程序和数据送会内存储器,然后计算机自动地逐条取出指令和数据进行分析、处理和执行。,第一部分,程序设计语言及其依赖的环境,让资金管理得更好!,2.,程序设计语言的理论基础,冯诺依曼理论的要点是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行。,第二部,分,程序设计语言的发展简史,让资金管理得更好!,1.,程序设计语言的发展回顾,一切可计算的问题都能计算,这样的虚拟机或者编程语言就叫图灵完备的。,一个能计算出每个图灵可计算函数(,Turing-computable function,)的计算系统被称为图灵完备的。一个语言是图灵完备的,意味着该语言的计算能力与一个通用图灵机 (,Universal Turing Machine,)相当,这也是现代计算机语言所能拥有的最高能力。,图灵完备是什么意思呢?,在可计算理论中,当一组数据操作的规则(一组指令集,编程语言)满足任意数据按照一定的顺序可以计算出结果,被称为图灵完备(,turing complete,)。一个有图灵完备指令集的设备被定义为通用计算机。如果是图灵完备的,它(计算机设备)有能力执行条件跳转(“,if”,和 “,goto”,语句)以及改变内存数据。 如果某个东西展现出了图灵完备,它就有能力表现出可以模拟原始计算机,而即使最简单的计算机也能模拟出最复杂的计算机。所有的通用编程语言和现代计算机的指令集都是图灵完备的(,C+ template,就是图灵完备的),都能解决内存有限的问题。图灵完备的机器都被定义有无限内存,但是机器指令集却通常定义为只工作在特定的,有限数量的,RAM,上。,第二部,分,程序设计语言的发展简史,让资金管理得更好!,程序设计语言的,4,大成分,:,数据,:,传输,:,计算,:,控制,:,(1).,机器语言,机器语言是直接用二进制代码指令表达的计算机语言,指令是用,0,和,1,组成的一串代码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义,例如某台计算机字长为,16,位,即有,16,个二进制数组成一条指令或其它信息。,16,个,0,和,1,可组成各种排列组合,通过线路变成电信号,让计算机执行各种不同的操作。,第二部,分,程序设计语言的发展简史,让资金管理得更好!,(2).,汇编语言,汇编语言,(AssemblyLanguage),是面向机器的程序设计语言。在汇编语合中,用助记符,(Memoni),代替操作码,用地址符号,(Symbol),或标号,(Label),代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编,汇编指令的特点,: OP(R,X),汇编语言的要点,:,存储单元的命名,;,存储单元的赋值,;,基本动作的重复,;,第二部,分,程序设计语言的发展简史,让资金管理得更好!,(3).C,语言,理论基础:,程序,=,数据结构,+,算法,支持结构化程序设计:避免,goto,,程序由,3,种基本结构组成:,顺序:,分支:,循环:,第二部,分,程序设计语言的发展简史,让资金管理得更好!,(4).Java,语言,理论基础:,程序,=,对象,+,关系,支持面向对象程序设计:,对象间的,5,种关系:,继承,、,组合,、,聚合,、,关联,、,依赖,面向对象程序架构的特点:,程序由对象构成,;,对象与对象彼此间可能有,5,种关系,;,对象与所在环境的关系,(,容器和组件,),;,采用设计模式可以适应对象将来的演变,;,第二部,分,程序设计语言的发展简史,让资金管理得更好!,2.,语言对程序开发的影响力,在应用程序开发过程中,对生产力影响的关键因素:,(1),语言,语言的抽象层次决定了生产力的根本;,(2),框架,框架封装了共性问题的解决方案,避免了重复劳动;,(3),工具,自动化工具的使用可以大幅度提高效率;,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第三部分,Java,语言和,Java,平台,1.Java,语言,Java,是一种,简单,的,,跨平台,的,,面向对象,的,,分布式,的,,解释,的,,健壮,的,安全,的,,结构中立,的,,可移植,的,,性能优异,的,多线程,的,,动态,的,语言。,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第三部分,Java,语言和,Java,平台,2.Java,平台,Java,平台由,Java,虚拟机和,Java,核心类所构成。它为纯,Java,程序提供了统一的编程接口,而不管下层操作系统是什么。,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第三部分,Java,语言和,Java,平台,JavaME,平台,:,J2ME,是一种高度优化的,Java,运行环境,主要针对消费类电子设备的,例如蜂窝电话和可视电话、数字机顶盒、汽车导航系统等等。,JavaSE,平台,:,J2SE,定位在客户端,主要用于桌面应用软件的编程,包含那些构成,Java,语言核心的类。,JavaEE,平台,:,J2EE,是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第,四部分,如何理解设计模式,许多刚入门的,Java,开发人员能够很好地理解,Java,编程语言的概念,但是他们往往需要经历一段痛苦的时期才能成为专业的,Java,开发人员。,这是因为大多数,Java,书籍只关注如何教会读者使用,Java,语言、,Java,工具(如,Ant,或者,TestUnit,)或者一种与语言无关的软件开发方法。,这些书籍让读者自行向其他软件开发人员学习技能和实践经验。,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第,四部分,如何理解设计模式,1.,什么是设计模式,设计模式(,Design pattern,)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。,使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第,四部分,如何理解设计模式,2.,经典的设计模式,模式对于理解,Java API,及与他人交流非常重要,因为大部分,API,是基于设计,模式锤炼出来的。,(1).,面向对象设计的基本原则,从本质上讲,设计就是做决定,知道哪些决定会提高软件的质量,哪些决定会给以后的维护带来问题,是任何一个设计人员在构思解决方案时都必须考虑的。,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第,四部分,如何理解设计模式,设计的核心在于清楚的识别软件系统中的各个组成部分,明确的知道它们将如何在一起协同工作来达到预期的需求目标。也就是说要认识到软件系统的组成成分;理清这些成分彼此间的关系;明确它们和所在地基础环境的关系;把握它们将来有可能出现的演变趋势,。,抽象、封装、继承、多态是面向对象设计中的,4,个基本概念。,抽象,来自于现实,是对现实世界,(,问题域,),中的概念进行的建模过程。,封装,在于强调概念与概念之间的边界划分。,继承,创建了一个类系家族,强调了专门化和一般化这种关系。,多态,则是在一个类系家族中允许类型替换,更确切的说可以理解为:凡是子类出现的地方,都可以用父类替代。,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第,四部分,如何理解设计模式,深刻理解了这,4,个基本概念之后,构建高质量的解决方案也需要知晓一些设计原则:,A.,受保护的变化,:可以理解为隔离应用程序中的波动性。如果意识到某个成分可能会发生变化,那么就应该使用接口来将该成分隔离。因为接口允许改变实现类,但不会影响到现有的依赖性。其实,任何设计模式都遵守了这个原则:将变化的和不变的分离开来。在理解任何一个模式的时候,就可以从两个方面入手,变化的部分在哪里?固化的部分在哪里?往往固化的东西才是更具价值的。,B.,低耦合,:这个原则是为了保证对一段代码的修改不会影响到另一段不相关的代码。例如:一个,UI,界面的变化需要修改数据库吗?如果需要的话,那么该应用程序就很脆弱,其中任何一点小波动都会扩散到整个软件系统。,C.,高内聚,:将有关联的东西紧紧地捆绑在一起,特别是那些全有全无,不可分解的部分。,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第,四部分,如何理解设计模式,这些问题看起来都是些常识,因为它们本来就是!但是真理往往就蕴含于常识之中,不要假设所有人都懂得这些道理。此外,还有一句名言“切勿违背原则,切勿迷恋技术”。在软件开发过程、产品和技术的迷宫中,这将成为帮助你走出困境的金玉良言。上述内容是软件开发的核心原则,而如何达到这些目标的手段则是技术,不要混淆这两个概念。,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第,四部分,如何理解设计模式,(2).,模式也是基于设计原则的,每一个模式都是一个或多个原则的具体运用,只要理解了抽象、封装、继承、多态和一些基本原则,就能很容易地理解模式为什么能降低软件设计的复杂性。,软件设计的目标很重要,但是理想的目标和实际情况之间往往存在巨大的差距。模式消除了这种差距并实现了这些目标。所以掌握了模式,就能大大降低软件设计的复杂度和难度。,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第,四部分,如何理解设计模式,从简单到复杂,逐步理解模式的运用和模式背后的动机,。,A.,设计单个类,单个类不构成一个设计模式,但它确实是一个设计。因为其设计简单,所以不会出错。设计过程的一分部是给一个对象分配职责。例子,(,略,),新手经常会犯的错误:类常常会因为带有几个与该类表示的抽象无关的方法而变得过于庞大,随着方法的增多,膨胀的更厉害,蜕化成面向过程的函数集合。这里违反的是高内聚原则,会引起依赖性问题。解决的方法是将那些不属于该类的方法“外包”给其他类,但是这里的“不属于”是设计者的主观判断,这种主观判断的能力依托于对面向对象原则的理解。可以说,设计者作出的任何决定都有可能是错误的。但是只要能根据有效地,OO,原则加以调整,就不必担心,以后对问题理解更清晰后便可以进行重构。,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第,四部分,如何理解设计模式,B.,在类之间创建关联,在设计单个类的时候,我们将一些方法外包给了另一个类。那么这两个类之间就有关系了。,为了让,A,类能调用,B,类的方法,可能会出现,3,中情况:,1.B,类的对象作为一个参数传递给,A,类对象:,A.setB(B,);,2.A,类负责在其内部构造,B,类对象并保存引用,,new,一个,B,类对象作为成员变量;,3.B,类对象从一个方法调用中传回,这,3,中方法决定了在关键关联时一个对象与另一个对象共享的可见性。设计可能已经完成了,但是还有解决另一个设计原则:低耦合。我们在指定关联时,,A,和,B,之间已经建立起紧密的依赖关系。这种关系被限制为,A,类和,B,类。这样很好,但是今后一旦某一方发生变化时,势必波及另一方。如何放开这种限制并解决这种变化问题呢?答案就是增加一个接口。,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第,四部分,如何理解设计模式,C.,创建接口,接口就是类之间的契约和协定。在一个类系家族中,接口总是位于顶层,所以只依赖于接口,就可以操纵整个类系家族中的每一个类,(PS:,羊群和领头羊,),警告:添加到设计中的每一个部件都是需要管理的,为了在组件之间依赖性并隔离变化,接口可以很好的发挥作用,但是并不哪里都需要接口。,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第,四部分,如何理解设计模式,D.,创建继承循环,通过关联和继承将两个类关联,就可以创建树和图形结构,以充分扩展类系家族的层次结构。继承关系可以使对象结构中的节点变成多态的。这好比文件系统中的文件和文件夹都具有相似的行为。设计模式中的组合模式,正是使用了继承循环,以达到类型无关但功能相识。在,UI,体系中的容器和组件的概念就是这种设计模式的经典案例。,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第,四部分,如何理解设计模式,(3).,一些重要的,Java,模式,Gof,模式分类:,1.,创建型:,工厂:,单例:,2.,结构型:,适配器:复用实现,装饰器:复用接口,组合模式:类系扩展,(,从树到图,),3.,行为型:,责任链:过滤器链,命令模式:请求命令封装,观察者:事件监听器,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第,五部分,开始迈进,JavaEE,1.,什么是企业级应用程序,一个企业系统是具备下列性质的系统:,(1),共享某些或全部在应用中被使用的资源:这里普遍存在的例子就是所有的应用数据驻留的关系型数据库。共享这些资源会增加额外的隐含复杂性:数据被共享是因为它需要同时对多个用户可用。因此,系统必须支持安全地且快捷地并发用户访问。,(2),规划成为内部使用:这里的“内部”指的是“大量生产的卖给最终用户的软件的对立物”。当系统确实可以在公司与商业伙伴之间共享时,它可以用公司的特有知识、商业惯例和特殊需求来编写。,(3),必须在现有的架构内运行:在极特殊的情况下,公司才有可能已经拥有了一套适当的、系统必须能够与之进行互操作的硬件和软件。特别地,这意味着应用必须适应现有的数据库模式(而不是其它的方式)。一个企业系统必须能够适应它所存活的异构系统。,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第,五部分,开始迈进,JavaEE,(4),将由内部,IT,员工部署并提供支持:对大多数公司来说,实际的“产品”生产都超出了开发者的职责范围。这是一件好事情,大多数开发者都会对因为他们开发的应用的故障,在凌晨时分被唤醒而感到不痛快。但是这同时也意味着系统的部署将要由他们之外的人手去完成,并且这还意味着负责数据中心的员工必须有某种途径在未经历编写代码环节的情况下,去监视、诊断和订正问题。,(5),需要更强的健壮性,对于异常处理和可扩展性都是如此:企业系统,特别是通过互联网可访问的系统(马上就能想到经典的,e-commerce,系统),象征着某个公司的一项巨额投资。系统宕机的每一分钟都意味着成千上万,也可能是成百万上千万美元收入的流失。每一个厌恶公司网站的用户(更糟的是,强制用户紧盯浏览器去等待登录请求的完成)都会导致公司的诚信度和潜在销售额的损失。,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第,五部分,开始迈进,JavaEE,(6),只能适度地失败:在像词处理器这样的应用中,某个意外情形可以通过抛出一个“唉呀”对话框,保存用户正在进行的工作,并请求他或她重新启动程序来处理。一个企业系统却不能这么做,如果它崩溃了,成百万上千万美元就会因丧失了生产率、销售额、客户感知等等而付之东流。一个企业系统要为“五个九的可用性”而奋斗:系统每年全部的正常运行时间要大于,99.999%,。这使得系统的停工期,不论是预先安的,还是突发的,只剩下每年,0.001%,,或者粗略为少于,5,分钟。,(7),必须合理地处理系统随时间推移而发生的演化:企业系统具有长久的生命周期,,Y2K,(,2000,年)问题证明了这一点。因此,一个系统必须能够适应在公司内随时间推移而发生的不可避免的变化:合并、销售额增长、政策调整、法人变更、征购等等。,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第,五部分,开始迈进,JavaEE,2.,什么是,JavaEE,第二部分 研发项目管理流程(,规划,),让资金管理得更好!,第,五部分,开始迈进,JavaEE,谢谢!,Q&A,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!