图灵图书,写的还算不错,值得看看,对于介于新手与老鸟之间的小菜来说挺不错,有一些收益。这是我摘抄在笔记本上的内容,让我感觉可能会比较需要的一些概念之类的,对这本书有兴趣的,或者对面向对象概念有一定了解却又无法灵活运用的朋友可以看看,也欢迎大家共同探讨其中的内容。
(*)中的,我的概括
(?)带有疑问的内容
一、面向对象特性:封装、继承、多态、组合
二、面向对象方式思考
1.接口与实现:接口提供给用户(*上层),使用户不用关心实现,即使实现变更,只要不影响用户的使用即可(*返回值)。
2.设计接口时使用抽象思维:可重用代码
3.尽可能为用户提供最小接口:提供用户需要的、用户需要时才增加、公共接口用户可以访问、从用户的角度设计类、与用户反复考虑需求与设计
(*此处接口是一个概念,而不是interface,例如public的能够被上层看到的,可以看做一个接口)
三、高级面向对象概念
1.构造函数:最重要的功能就是初始化遇到new关键字时分配内存,设计时应尽量提供构造函数
①重载方法,参数不同(*重写,子类重写父类方法,全部一致)
②子类会先调用父类构造函数
2.错误处理:①忽略问题 (*找死)
②检查问题并中止应用(*有病)
③检查问题并尝试修复(*费时费事)
④抛出异常(*影响性能)
⑤综合上述问题,结合处理
3.作用域:局部(*方法中)、对象(*this是当前对象的一个引用,如果方法中有相同属性,则this是全局的那一个)、类属性(*静态static,这个类所有的对象使用它是都是走的相同的内存位置)
4.对象操作:简单的复制只会复制对象的引用
Test t1 = new Test(); Test t2 = t1;
t1.name == t2.name;(*t1的name改变的话,t2也会发生改变)
四、类剖析
1.类构造:类型(*尽量与文件名保持一致)
属性(*存储对象的信息)
访问器(*构建属性set,get方法,用于封装属性)
构造函数(*初始化部分属性)
公共接口方法(*实例化的对象可以调用的方法,!用户可以看到的借口)
私有实现方法(*外部不可调用,用于对类的数据及实现的隐藏)
五、类设计指导原则
1.明确公共接口:最小接口及隐藏实现
2.设计健壮的构造(析构)函数(*同时善用using--C#)
3.设计错误处理,充分考虑重用
4.考虑可扩展性:抽出不可移植的代码、让作用域尽可能小、类只对自己负责
5.充分考虑可维护性:解耦合(*降低类与类之间的依赖关系?面向接口编程)
6.对象持久化、序列化(*数据库、二进制、XML)
六、利用对象实现设计
1.完成适当的分析(*如果无法实现,应当机立断;重点是让每一个人了解系统,确定需求)
2.建立工作称述
3.收集需求
4.开发用户界面的原型
5.明确类(*重点标出所有名词(对象))
6.确定各个类的职责(*存储什么数据、完成什么操作)
7.确定类如何互相操作
8.创建类模型来描述系统(*UML等)
七、掌握继承和组合
目的:代码重用
抽出的共性越多,可能系统的复杂性就越高,设计时应注重考虑将来(&可拓展性)
使用集成时,类层次上的封装本质会被削弱,继承中最精彩的地方-----多态
八、框架与重用:使用接口和抽象类实现设计
抽象类可提供具体实现与抽象方法
接口提供的全部是抽象方法(*interface)
提供一个未实现的抽象方法给子类便是建立契约(*插入点)
九、构建对象
1.组合关系:可以通过结合不太复杂的部分来构建系统
2.分阶段构建:①稳定的复杂系统通常采用一种层次结构的形式,其中各个系统都是由更简单的子系统构成,而各个子系统则是由更简单的下一级子系统构成。
②稳定的复杂系统几乎都可以分解
③稳定的复杂系统几乎总是由几个不同类型的子系统构成,并以不同的结合方式组织
④能正常工作的稳定系统几乎总是由能正常工作的简单系统发展而来
3.不同类型的组合:①聚集:一个复杂对象有其他对象组成
②关联:使用接口、继承、属性实现
4.避免依赖性(*解耦合)
5.基数(?????):多对象关联:实体类中外键类,一对多使用数组
第九章后,基本上与对象概念已经关系不大,书中是这么说的,而且每个领域都可以单独成为一本书的内容,因此这本书上也基本都是泛泛而过,在这里只列出目录,有兴趣的朋友自己买回家读读吧~~!
十、用UML创建对象模型
十一、对象和可移植数据:XML
十二、持久化对象:串行化和关系型数据库
十三、对象与英特网
十四、对象和客户服务应用
十五、设计模式