面向对象是推进软件开发的综合技术,不仅包括编码的设计实现,也在上流工程
的业务分析、需求定义中用到。
面向对象的软件开发技术与现实世界是似是而非的,首先软件只能一定的程度上涵盖
现实世界的工作,并不能完全模拟现实世界的运行,计算机只是擅长做存储和固定指令的
工作;
类,多态,继承是面向对象的三大要素。类用于将变量和子程序汇总在一起,创建独
立性高的构建;多态和继承用于消除重复代码,创建通用性强的构件。
类的功能是汇总,隐藏和创建实例(不限数量)
- 汇总子程序和变量
- 隐藏,子程序和变量只在类的内部使用
- 从一个类可以创建多个实例
实例变量是存在期间长的局部变量或者限定访问范围的全局变量,这种变量结构在面向
过程变程中是不存在的。
多态是创建公用主程序的结构,公用子程序将被调用端的逻辑汇总为一个逻辑,而多态
则相反,他统一了调用端的逻辑,不管被调用端如何变化,也无须修改调用端。多态是统一
调用子程序端的逻辑结构,即创建公用主程序的结构。
继承是将类定义的公共部分汇总到另外一个类中,并去除重复代码的结构。
指定类型的原因有两个:告诉编译器变量内存区域的大小;防止程序发生错误,在不同
类型变量进行运算时,能在编译或者运行程序时发生显示的错误。
在面向对象编程中,类也可以作为类型使用,从而将类型检查作为一种程序规则强制要求。
程序的运行方式分为编译器方式和解释器方式。编译器方式的运行效率高,编译器是将程
序转换成计算机能够理解机器语言之后再运行的方式;而解释器方式是将程序命令边解释边执
行的方式,并不需要编译器,这种方式可以使同一个程序在不同的环境中运行。而面向对象的
代表Java则采用中间码的方式,中和了编译型和解释型语言的优点。既可以使同一个程序在不
同的环境中运行,同时又兼顾运行效率。
静态区:在应用程序开始时分配,一般用于保存全局变量和运行的嗲吗,为整个应用程序
分配一个。
堆区:在程序运行开始时分配一定的区域,之后根据需要再为应用程序分配,存储的信息
取决于应用程序,为一个系统或者应用程序分配一个。
栈区:保存调用子程序的参数,局部变量和返回值,为每个线程分配一个。
面向对象的类一般存储在静态区,实例存储在堆区,方法执行时的参数,局部变量和返回值
存储在栈区。
提高构件独立性的诀窍:单一职责(明确表示功能的名称),信息隐藏,创建得小一点。
敏捷开发宣言:个体和互动高于流程和工具;工作的软件高于详尽的文档;客户合作高于合
同谈判;响应变化高于遵循变化。敏捷开发实践:测试驱动开发,重构和持续集成。