关于面向对象的理解

作者: Vector_Wan | 来源:发表于2019-06-06 10:46 被阅读2次

面向对象其实是对过去成功的设计经验的总结。但那些成功的设计,不是因为用了封装/归一化而成功,而是切合自己面对的问题,给出了恰到好处的设计。所以在使用面向对象方法时不要为了面向对象而面向对象,而是设计需要面向对象然后再面向对象。所以一个方法没有好与不好,只有适不适合这个问题。技术无罪,但,没有银弹。

首先,面向对象是一种思维方式、一种设计方法,这与是否是使用所谓的‘面向对象语言’是无关的。显然,不用面向对象语言、不用class,一样可以做归一化的设计(unix 系统提出泛文件概念时,面向对象语言根本就不存在;游戏界的精灵这个基础抽象,最初是用C甚至汇编写的),一样可以封装(通过定义模块和接口),只是用面向对象语言可以直接用语言元素显式声明这些而已;而有时即使用了面向对象语言,满篇都是class,并不等于就有了归一化的设计。甚至,因为被这些花哨的东西迷惑,反而更加不知道什么才是设计。

面向对象最最基本的好处有以下两点:封装可(通过固定接口、合理模块化而)应付需求变更、归一化可简化(类的使用者的)设计

这种编程思想在应用于大型系统的时候特别好使,注意这个大型系统并不仅仅是指程序项目,比如这个系统可以是一个公司。在一个复杂的公司里,没有一个人能搞清楚一个工作的所有细节(没有一个上帝视角)。为此,公司要分很多个部门,每个部门相对的独立,有自己的章程,办事方法和规则等。独立性就意味着“隐藏内部状态”。例如 CEO 只能通过部门上交的报表使我们了解部门运转情况,命令部门经理要达到什么什么要求。却不能说命令部门里的谁谁谁,在什么时候之前一定要办成。这些内部的细节你管不着,也管不过来。

但是在小项目里,“面向对象”没用,或者说体现不出来“面向对象”的那些好处,面向对象并不适用于在学习各种语言语法时写的那些Demo程序(比如“冒泡排序”“图书/课程管理系统”啥的),甚至于大多数的小型开发项目(比如普通的企业网站、个人博客)都不适合。面向对象适合的是那些业务逻辑复杂(其实用“繁杂”更恰当一些)的大型项目。所谓繁杂,繁指多,杂指乱,项目“杂乱”,可以表现为:功能多改动多,所以代码量大、开发人员多、开发/维护跨度时间长……

但是作为面向对象的初学者接触的都是一些小项目,作为练习也没有必要上纲上线,面向对象理解这么多够用了。。。

扩展阅读:面向对象的出现

相关文章

  • 第2天 关于面向对象

    1.如何理解“面向对象”? 关于面向对象的理论、流派,写很多本书都讲不完,每个人对于“面向对象”的理解也根据各人的...

  • 关于面向对象的理解

    面向对象其实是对过去成功的设计经验的总结。但那些成功的设计,不是因为用了封装/归一化而成功,而是切合自己面对的问题...

  • Python基础语法——面向对象(下)

    面向对象三大思想:封装、继承、多态。 可参考一些优质文章: 关于面向对象的相关理解解释: 面向对象基础 装饰器、类...

  • 面向对象编程的反向学习

    今天看了篇关于面向对象编程的文章,发现自己对于面向对象编程的基础理解甚少。作者对于面向对象编程的问题描述正式我们在...

  • JAVA设计模式总结之23种设计模式

    关于这篇文章本人的体悟,要彻底理解面向对象思想,一切从面向对象的思想触发去理解学习。摒弃面向过程的业务思维将实际工...

  • 面向对象

    面向对象基础 目标 理解面向对象 类和对象 添加和获取对象属性 魔法方法 一. 理解面向对象 面向对象是一种抽象化...

  • python 关于面对对象

    python 关于面对对象 面向对象 关于对面向对象的理解,我认为就是一种资源整合和工具思维。比如说做一件事,不用...

  • 理解面向对象

    理解面向对象 阅读知乎大牛对面向对象的讨论后,写下自己的总结和理解。知乎 面向对象的原本特性 面向对象原本的特性(...

  • 面向对象:创建对象&继承

    博客内容:什么是面向对象为什么要面向对象面向对象编程的特性和原则理解对象属性创建对象继承 什么是面向对象 面向对象...

  • 面向对象的三大基本特征和五大设计原则

    1、面向对象概念 1.1、理解面向对象 面向对象是相对面向过程而言; 面向对象和面向过程都是一种思想; 面向过程:...

网友评论

    本文标题:关于面向对象的理解

    本文链接:https://www.haomeiwen.com/subject/rpfyxctx.html