版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、让资金管理得更好!,Java语言特性与设计模式内部培训,深圳市拜特科技股份有限公司 技术发展部-桂艳军,目录,让资金管理得更好!,第一部分程序设计语言及其依赖的环境第二部分程序设计语言的发展简史第三部分Java语言和Java平台第四部分 如何理解设计模式第五部分 开始迈进JavaEE,第一部分 程序设计语言及其依赖的环境,让资金管理得更好!,1.冯诺依曼计算机及其体系结构 冯诺依曼首先提出了“存储程序”的思想,大大提高了计算机的速度。后人按照这种思想和结构设计的计算机称为冯诺依曼计算机。 “存储程序”思想可以简化概括为3点: (1)计算机应用包括运算器、控制器、存储器、输入/输出设备。 (2)
2、计算机内部应采用二进制来表示指令和数据。 (3)将编制好的程序和数据送会内存储器,然后计算机自动地逐条取出指令和数据进行分析、处理和执行。,第一部分 程序设计语言及其依赖的环境,让资金管理得更好!,2.程序设计语言的理论基础 冯诺依曼理论的要点是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行。,第二部分 程序设计语言的发展简史,让资金管理得更好!,1.程序设计语言的发展回顾 一切可计算的问题都能计算,这样的虚拟机或者编程语言就叫图灵完备的。 一个能计算出每个图灵可计算函数(Turing-computable function)的计算系统被称为图灵完备的。一个语言是图灵完备的,意味着该
3、语言的计算能力与一个通用图灵机 (Universal Turing Machine)相当,这也是现代计算机语言所能拥有的最高能力。 图灵完备是什么意思呢? 在可计算理论中,当一组数据操作的规则(一组指令集,编程语言)满足任意数据按照一定的顺序可以计算出结果,被称为图灵完备(turing complete)。一个有图灵完备指令集的设备被定义为通用计算机。如果是图灵完备的,它(计算机设备)有能力执行条件跳转(“if” 和 “goto”语句)以及改变内存数据。 如果某个东西展现出了图灵完备,它就有能力表现出可以模拟原始计算机,而即使最简单的计算机也能模拟出最复杂的计算机。所有的通用编程语言和现代计算
4、机的指令集都是图灵完备的(C+ template就是图灵完备的),都能解决内存有限的问题。图灵完备的机器都被定义有无限内存,但是机器指令集却通常定义为只工作在特定的,有限数量的RAM上。,第二部分 程序设计语言的发展简史,让资金管理得更好!,程序设计语言的4大成分: 数据: 传输: 计算: 控制: (1).机器语言 机器语言是直接用二进制代码指令表达的计算机语言,指令是用0和1组成的一串代码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义,例如某台计算机字长为16位,即有16个二进制数组成一条指令或其它信息。16个0和1可组成各种排列组合,通过线路变成电信号,让计算机执行各种不同的操
5、作。,第二部分 程序设计语言的发展简史,让资金管理得更好!,(2).汇编语言 汇编语言(AssemblyLanguage)是面向机器的程序设计语言。在汇编语合中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编 汇编指令的特点: OP(R,X) 汇编语言的要点: 存储
6、单元的命名; 存储单元的赋值; 基本动作的重复;,第二部分 程序设计语言的发展简史,让资金管理得更好!,(3).C语言 理论基础: 程序=数据结构+算法 支持结构化程序设计:避免goto,程序由3种基本结构组成: 顺序: 分支: 循环:,第二部分 程序设计语言的发展简史,让资金管理得更好!,(4).Java语言 理论基础: 程序=对象+关系 支持面向对象程序设计: 对象间的5种关系: 继承、组合、聚合、关联、依赖 面向对象程序架构的特点: 程序由对象构成; 对象与对象彼此间可能有5种关系; 对象与所在环境的关系(容器和组件); 采用设计模式可以适应对象将来的演变;,第二部分 程序设计语言的发展
7、简史,让资金管理得更好!,2.语言对程序开发的影响力 在应用程序开发过程中,对生产力影响的关键因素: (1)语言 语言的抽象层次决定了生产力的根本; (2)框架 框架封装了共性问题的解决方案,避免了重复劳动; (3)工具 自动化工具的使用可以大幅度提高效率;,第二部分 研发项目管理流程(规划),让资金管理得更好!,第三部分 Java语言和Java平台,1.Java语言 Java是一种 简单的, 跨平台的, 面向对象的, 分布式的, 解释的, 健壮的, 安全的, 结构中立的, 可移植的, 性能优异的, 多线程的, 动态的 语言。,第二部分 研发项目管理流程(规划),让资金管理得更好!,第三部分
8、Java语言和Java平台,2.Java平台 Java平台由Java虚拟机和Java核心类所构成。它为纯Java程序提供了统一的编程接口,而不管下层操作系统是什么。,第二部分 研发项目管理流程(规划),让资金管理得更好!,第三部分 Java语言和Java平台,JavaME平台: J2ME是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂窝电话和可视电话、数字机顶盒、汽车导航系统等等。 JavaSE平台: J2SE 定位在客户端,主要用于桌面应用软件的编程,包含那些构成Java语言核心的类。 JavaEE平台: J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可
9、简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。,第二部分 研发项目管理流程(规划),让资金管理得更好!,第四部分 如何理解设计模式,许多刚入门的Java开发人员能够很好地理解Java编程语言的概念,但是他们往往需要经历一段痛苦的时期才能成为专业的Java开发人员。 这是因为大多数Java书籍只关注如何教会读者使用Java语言、Java工具(如Ant或者TestUnit)或者一种与语言无关的软件开发方法。 这些书籍让读者自行向其他软件开发人员学习技能和实践经验。,第二部分 研发项目管理流程(规划),让资金管理得更好!,第四部分 如何理解设计模式,1.什么是设计模式 设计模式(
10、Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。 使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。,第二部分 研发项目管理流程(规划),让资金管理得更好!,第四部分 如何理解设计模式,2.经典的设计模式 模式对于理解Java API及与他人交流非常重要,因为大部分API是基于设计 模式锤炼出来的。 (1).面向对象设计的基本原则 从本质上讲,设计就是做决定,知道哪些决定会提高软件的质量,哪些决定
11、会给以后的维护带来问题,是任何一个设计人员在构思解决方案时都必须考虑的。,第二部分 研发项目管理流程(规划),让资金管理得更好!,第四部分 如何理解设计模式,设计的核心在于清楚的识别软件系统中的各个组成部分,明确的知道它们将如何在一起协同工作来达到预期的需求目标。也就是说要认识到软件系统的组成成分;理清这些成分彼此间的关系;明确它们和所在地基础环境的关系;把握它们将来有可能出现的演变趋势。 抽象、封装、继承、多态是面向对象设计中的4个基本概念。 抽象来自于现实,是对现实世界(问题域)中的概念进行的建模过程。 封装在于强调概念与概念之间的边界划分。 继承创建了一个类系家族,强调了专门化和一般化这
12、种关系。 多态则是在一个类系家族中允许类型替换,更确切的说可以理解为:凡是子类出现的地方,都可以用父类替代。,第二部分 研发项目管理流程(规划),让资金管理得更好!,第四部分 如何理解设计模式,深刻理解了这4个基本概念之后,构建高质量的解决方案也需要知晓一些设计原则: A.受保护的变化:可以理解为隔离应用程序中的波动性。如果意识到某个成分可能会发生变化,那么就应该使用接口来将该成分隔离。因为接口允许改变实现类,但不会影响到现有的依赖性。其实,任何设计模式都遵守了这个原则:将变化的和不变的分离开来。在理解任何一个模式的时候,就可以从两个方面入手,变化的部分在哪里?固化的部分在哪里?往往固化的东西
13、才是更具价值的。 B.低耦合:这个原则是为了保证对一段代码的修改不会影响到另一段不相关的代码。例如:一个UI界面的变化需要修改数据库吗?如果需要的话,那么该应用程序就很脆弱,其中任何一点小波动都会扩散到整个软件系统。 C.高内聚:将有关联的东西紧紧地捆绑在一起,特别是那些全有全无,不可分解的部分。,第二部分 研发项目管理流程(规划),让资金管理得更好!,第四部分 如何理解设计模式,这些问题看起来都是些常识因为它们本来就是!但是真理往往就蕴含于常识之中,不要假设所有人都懂得这些道理。此外,还有一句名言“切勿违背原则,切勿迷恋技术”。在软件开发过程、产品和技术的迷宫中,这将成为帮助你走出困境的金玉
14、良言。上述内容是软件开发的核心原则,而如何达到这些目标的手段则是技术,不要混淆这两个概念。,第二部分 研发项目管理流程(规划),让资金管理得更好!,第四部分 如何理解设计模式,(2).模式也是基于设计原则的 每一个模式都是一个或多个原则的具体运用,只要理解了抽象、封装、继承、多态和一些基本原则,就能很容易地理解模式为什么能降低软件设计的复杂性。 软件设计的目标很重要,但是理想的目标和实际情况之间往往存在巨大的差距。模式消除了这种差距并实现了这些目标。所以掌握了模式,就能大大降低软件设计的复杂度和难度。,第二部分 研发项目管理流程(规划),让资金管理得更好!,第四部分 如何理解设计模式,从简单到
15、复杂,逐步理解模式的运用和模式背后的动机。 A.设计单个类 单个类不构成一个设计模式,但它确实是一个设计。因为其设计简单,所以不会出错。设计过程的一分部是给一个对象分配职责。例子(略) 新手经常会犯的错误:类常常会因为带有几个与该类表示的抽象无关的方法而变得过于庞大,随着方法的增多,膨胀的更厉害,蜕化成面向过程的函数集合。这里违反的是高内聚原则,会引起依赖性问题。解决的方法是将那些不属于该类的方法“外包”给其他类,但是这里的“不属于”是设计者的主观判断,这种主观判断的能力依托于对面向对象原则的理解。可以说,设计者作出的任何决定都有可能是错误的。但是只要能根据有效地OO原则加以调整,就不必担心以
16、后对问题理解更清晰后便可以进行重构。,第二部分 研发项目管理流程(规划),让资金管理得更好!,第四部分 如何理解设计模式,B.在类之间创建关联 在设计单个类的时候,我们将一些方法外包给了另一个类。那么这两个类之间就有关系了。 为了让A类能调用B类的方法,可能会出现3中情况: 1.B类的对象作为一个参数传递给A类对象:A.setB(B); 2.A类负责在其内部构造B类对象并保存引用,new一个B类对象作为成员变量; 3.B类对象从一个方法调用中传回 这3中方法决定了在关键关联时一个对象与另一个对象共享的可见性。设计可能已经完成了,但是还有解决另一个设计原则:低耦合。我们在指定关联时,A和B之间已
17、经建立起紧密的依赖关系。这种关系被限制为A类和B类。这样很好,但是今后一旦某一方发生变化时,势必波及另一方。如何放开这种限制并解决这种变化问题呢?答案就是增加一个接口。,第二部分 研发项目管理流程(规划),让资金管理得更好!,第四部分 如何理解设计模式,C.创建接口 接口就是类之间的契约和协定。在一个类系家族中,接口总是位于顶层,所以只依赖于接口,就可以操纵整个类系家族中的每一个类(PS:羊群和领头羊) 警告:添加到设计中的每一个部件都是需要管理的,为了在组件之间依赖性并隔离变化,接口可以很好的发挥作用,但是并不哪里都需要接口。,第二部分 研发项目管理流程(规划),让资金管理得更好!,第四部分
18、 如何理解设计模式,D.创建继承循环 通过关联和继承将两个类关联,就可以创建树和图形结构,以充分扩展类系家族的层次结构。继承关系可以使对象结构中的节点变成多态的。这好比文件系统中的文件和文件夹都具有相似的行为。设计模式中的组合模式,正是使用了继承循环,以达到类型无关但功能相识。在UI体系中的容器和组件的概念就是这种设计模式的经典案例。,第二部分 研发项目管理流程(规划),让资金管理得更好!,第四部分 如何理解设计模式,(3).一些重要的Java模式 Gof模式分类: 1.创建型: 工厂: 单例: 2.结构型: 适配器:复用实现 装饰器:复用接口 组合模式:类系扩展(从树到图) 3.行为型: 责
19、任链:过滤器链 命令模式:请求命令封装 观察者:事件监听器,第二部分 研发项目管理流程(规划),让资金管理得更好!,第五部分 开始迈进JavaEE,1.什么是企业级应用程序 一个企业系统是具备下列性质的系统: (1) 共享某些或全部在应用中被使用的资源:这里普遍存在的例子就是所有的应用数据驻留的关系型数据库。共享这些资源会增加额外的隐含复杂性:数据被共享是因为它需要同时对多个用户可用。因此,系统必须支持安全地且快捷地并发用户访问。 (2) 规划成为内部使用:这里的“内部”指的是“大量生产的卖给最终用户的软件的对立物”。当系统确实可以在公司与商业伙伴之间共享时,它可以用公司的特有知识、商业惯例和
20、特殊需求来编写。 (3) 必须在现有的架构内运行:在极特殊的情况下,公司才有可能已经拥有了一套适当的、系统必须能够与之进行互操作的硬件和软件。特别地,这意味着应用必须适应现有的数据库模式(而不是其它的方式)。一个企业系统必须能够适应它所存活的异构系统。,第二部分 研发项目管理流程(规划),让资金管理得更好!,第五部分 开始迈进JavaEE,(4) 将由内部IT 员工部署并提供支持:对大多数公司来说,实际的“产品”生产都超出了开发者的职责范围。这是一件好事情大多数开发者都会对因为他们开发的应用的故障,在凌晨时分被唤醒而感到不痛快。但是这同时也意味着系统的部署将要由他们之外的人手去完成,并且这还意味着负责数据中心的员工必须有某种途径在未经历编写代码环节的情况下,去监视、诊断和订正问题。 (5)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 客户信息维护优化承诺书5篇
- 酒店餐饮品牌化经营模式探讨
- 肝脏肿物微波消融术后护理
- 腹泻健康教育
- 企业绿色生态履行承诺书4篇
- 公司培训课程申请及审批模板
- 嘉兴市重点中学2025-2026学年初三年级第一次联考英语试题试卷含解析
- 2026年北京市西城区名校初三下学期语文试题8月开学考试卷含解析
- 项目施工按时竣工承诺书(6篇)
- 员工培训与发展计划制定与实施方案
- 幼儿园谷雨课件
- 量子计算入门:通过线性代数学习量子计算 课件 第11章 量子傅里叶变换
- 行政处罚法专题培训课件
- 园区党组织管理制度
- 2025年四川省泸州市中考道德与法治真题(附答案解析)
- 2025届河北省邢台市英语八下期末联考试题含答案
- CJ/T 107-2013城市公共汽、电车候车亭
- 心电图基础知识与识图理论考核试题题库及答案
- 2025年四川省德阳市中考一模化学试题(含答案)
- 智能化弱电培训
- 杭州中好电子有限公司搬迁项目环评报告
评论
0/150
提交评论