代码大全真是一本
厚书!但作者牛就就在写着么厚的书,却让你不觉得内容空虚(不像很多国内的混书水不拉吉),至少我看到第六章依旧觉得兴趣盎然,很多东西虽然似曾相识,但被作者巧妙的组织在一起让人有醍醐灌顶的感觉,妙哉;
因为本人奔三在即,记忆衰减严重,所以不再过目不忘(自然从来没有过该本事...),就借ItEye(顺便鄙视一下Oracle的霸道)之宝地写一点读后感吧,作为自己记忆的存储空间。
废话不多说,选章不如撞章,就从第六章某节开始杂记起吧~
6.4 创建类的原因:
写代码写了好几年了,加上研究生时七拼八凑的那些代码,接触面向对象,类这样的概念也不少了,但让我正经八百的给你说创建类的原因到底是啥子,俺还真讲不太清楚,就直接拷贝粘帖作者的原话吧,哈哈
1. 为现实世界的对象建模
此乃废话,但是不得不提的废话,否则就不用提类这个概念啦
2. 为抽象的对象建模
就是抽象出世界本没有的概念,我想有一定数学基础的人都很好理解,比如Point,Shape这样抽象的概念,在必要的时候,可以抽象成一个类加以使用
3. 降低复杂度
就像我们看一个人的时候,先关注的是这个人的外在,表象等,并不是直接就看清了这个人的五脏六腑,所以说知人知面不知心,人心隔肚皮等等...扯远了,就是说写类是为了让人不用过多的关注太多的细节,毕竟人的头脑是有限的
4. 隔离复杂度
这里的复杂,有可能是复杂的算法,复杂的数据结构,复杂的通讯协议等等,如果没有类的包装,这些玩意儿这一坨,那一堆的,让程序员的后期维护和修改成了噩梦,所以需要把这些复杂的家伙都一股脑的整到一起(当然,是你的代码结构设计的够巧妙才行),这样,在后期修改管理上面,就不用在复杂上再来复杂了,我想,降低耦合,增加内聚差不多一个意思吧
5. 隐藏实现细节
这个和3,4的内容有些类似
6. 限制变动的影响范围
如果你在写代码的时候,有一部分是经常或有可能变动的,那么最好把它们隔离出来,让这一部分的变动不至于影响到全身
7.隐藏全局数据
这点我也做的不好,为了方便,我经常把全局数据暴露的清清楚楚,作者认为,应该把这些数据也隐藏在类的接口背后,可以使用访问器(access rountine)来代替,这样子如果全局变量的数据结构变动了,也不用修改其他的程序..嗯,以后得注意
8.让参数传递更流畅
这个其实更像重构的概念,当你发现你的代码中间有某个参数在多个模块之间传来传去,那么就有必要停下来思考一下,是否需要把这些子程序放置到一个类里面了
9.建立中心控制点
将针对某种任务的控制代码都放置到一个类里会比较好,其实这也是很自然的,比如,建立数据库连接,断开这样的代码还是放在一起吧,否则,万一数据库变更了,你就得到处去找你在哪里写了conn代码啦
10.让代码更加易于重用
对于一个项目组来说,日积月累的可重用代码是无可多的的财富。我们在写一个新的项目的时候,也要注意这一点,看看自己的某些代码是否可以抽象的更好,让以后的类似项目不用做重复的工作了,我这点做的不是很好,有些同事做的不错,学习学习
11.为程序族做计划
好吧,我也是第一次看到程序族这个概念...Family of Programs,大概是作者原创的?意思其实就是说,在写某一个模块时候,也要从整个项目的角度出发,比如某些需求用户会变更的比较频繁,或者你自己对于某些代码未来会做修改,那么最好把这些东西放在一个类里,当然,这个和之前的某些概念有些重复,自己把握~
11.实现某种特定的重构
很多新类都是在重构的时候出现的,很多老类也会在重构的时候被消灭
完毕,灭哈哈
分享到:
相关推荐
它在FORTRAN 77的基础上引入了许多增强功能,提高了代码的可读性、可维护性和可重用性。以下是一些关键知识点的总结: 1. 数据类型: - INTEGER(KIND=1,2,4) 分别占用1、2和4个字节,缺省为4字节。单精度浮点数的...
《51单片机P89V51学习杂记》是针对电子工程初学者以及对51单片机有兴趣的开发者提供的一份宝贵资源。这份压缩包包含了关于51单片机及其应用的深入学习材料,特别是侧重于P89V51型号的单片机。下面将对其中的主要知识...
在学习51单片机时,C语言作为编程语言被广泛使用,因为相比汇编语言,C语言更易读、易写,且移植性好。本篇将深入探讨51单片机C语言学习中的关键知识点。 1. **基础知识**:首先,理解单片机的基本结构,包括CPU、...
本杂记将根据个人经验,总结在使用STM8S003F3时遇到的问题,以及个人整理的解决方法。 开发环境选择IAR,是一种常用于嵌入式系统开发的集成开发环境。在程序下载过程中,可能会遇到无法写入程序的问题,需要从以下...
以“blog:阅读原始码,分享文章读后感的个人博客”为名的博客平台,便是这样一种服务于技术领域学习与探讨的个人空间。通过深入阅读和解析源代码,博主旨在带领读者更深层次地理解技术本质,并通过文字的形式,将这...
杂一点的程序就更是难读懂,而 C 语言在大多数情况下其机器代码生成效率和汇编语言相 当,但可读性和可移植性却远远超过汇编语言,而且 C 语言还可以嵌入汇编来解决高时效 性的代码编写问题。对于开发周期来说,中...
"51单片机C语言学习杂记.exe"可能是一个包含实例和练习的教程,通过它你可以学习如何编写控制单片机的C程序,比如初始化IO口、设置中断、控制外部设备等。C语言的基本语法、数据类型、流程控制语句、函数和指针等都...
Python的简洁性和易读性使得它成为编写游戏代码的理想选择。 2. **图形用户界面(GUI)**:五子棋游戏通常会使用GUI来展示棋盘和交互。在Python中,常用的GUI库有Tkinter、PyQt或wxPython。这个项目可能使用了...