《面向对象葵花宝典》读后感

这本书是通过一位简友的文章看到的,因为当时正在看李运华老师的《从零开始学架构》。

这本书主要包括四部分:1.面向对象基础;2.面向对象实战;3.面向对象技巧;4.面向对象架构设计。

1. 面向对象基础

在第一部分面向对象基础中,通过作者对于程序设计思想发展的介绍,我认识到从面向机器到面向过程,再到面向对象,就是不断解决复杂度的问题,主要就是体现在可扩展性和可维护性上。

面向对象

即使我们使用面向对象的语言进行开发,最后转换为CPU能执行的指令,也还是面向过程的。所以说,面向过程无处不在,是计算机的基石。

与面向过程的方法相比,面向对象不再局限于计算机的机器本质,而更加侧重于对现实世界的模拟。如果说面向过程像一条流水生产线那么面向过程就像是一个足球队。

面向对象这种对现实世界的模拟的思想,其本质上就是人的思想,这是一个质的飞跃,意味着程序员可以按照人的思想来观察分析设计系统。

面向对象思想的核心是可扩展性。而可扩展性只是软件质量属性中很小的一部分,其他的属性都不是面向对象能够解决的。(软件质量属性包括性能、可靠性、安全性、可维护性、可移植性、可伸缩性、可扩展性和成本。)

对于复杂的业务系统来说,性能的好坏是由设计来决定的,而不是由语言来决定的,更不会因为采用了面向对象而导致性能降低。

不管是面向过程还是面向对象,都只是一种思维方式,一种思考问题的方式,而和具体的语言没有关系。

设计属性的一个基本原则是属性最小化原则,即属性不可再分。设计方法的一个基本原则是方法单一化原则,即一个方法只做一件事情。

对象

真实存在的是对象,而“类”是有了人类文明后,根据观察分析加以归纳总结出来的。在软件世界中同样是这样的,真正存在于软件运行过程中的是对象而不是类。类只是在程序编写中由程序员分析归纳出来的。这或许正是面向对象之所以叫做面向对象,而不是面向类的一个原因吧。

软件类是对现实类的模拟,但并不简单的等同,除了实现现实类相对应的功能外,我们还会创造出许多现实中并不存在的类。而这个创造过程正是各种设计方法,设计模式,设计原则大显身手的地方。

接口

接口是一组相关的交互功能点定义的集合。注意:接口是一组功能的集合,而不是一个功能,另外接口的功能是用于交互,所有的功能都是public的,即别的对象可以操作;接口只定义函数,但不涉及函数的实现。

接口的用处:你不知道一个对象所属的具体类,只知道这些对象都具备某种功能。

抽象类

抽象类是一种特殊的类,其特殊性在于抽象类只能用于继承,不能被实例化为具体的对象。

抽象类和接口有什么区别?

抽象类本质上还是类强调一组事物的相似性,包括属性和方法的相似性;而接口只是方法的相似性,并且仅仅体现在方法声明上的相似性,而没有方法定义上的相似性。

抽象类看起来是一个介于类和接口之间的概念,同时具备类和接口的部分特性。


我好像还从来没有写过技术书籍的读后感,都不知道要怎么写。

如果说简单汇总书中标注出来的一个自己有想法的点,那岂不成了笔记汇总了。觉得那样不好。

你可能感兴趣的:(《面向对象葵花宝典》读后感)