《给大家看的面向对象编程书》--摘要与笔记

图灵图书,写的还算不错,值得看看,对于介于新手与老鸟之间的小菜来说挺不错,有一些收益。这是我摘抄在笔记本上的内容,让我感觉可能会比较需要的一些概念之类的,对这本书有兴趣的,或者对面向对象概念有一定了解却又无法灵活运用的朋友可以看看,也欢迎大家共同探讨其中的内容。

(*)中的,我的概括

(?)带有疑问的内容

一、面向对象特性:封装、继承、多态、组合

二、面向对象方式思考

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

十二、持久化对象:串行化和关系型数据库

十三、对象与英特网

十四、对象和客户服务应用

十五、设计模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值