美文网首页
懒惰的程序员之面向对象编程思想

懒惰的程序员之面向对象编程思想

作者: 小马哥China | 来源:发表于2020-01-29 10:49 被阅读0次

有句话说: 程序员都是"懒惰"的! 小马哥无比认同,因为懒惰,所以我们思进取,把复杂的事情研究透彻,然后简单干,用一种聪明的方式重新干! 

封装

面向对象就是一种"懒惰"的聪明做事方式,本质代码复用,程序员不愿意去写很多重复的代码,于是在日渐庞杂的代码工程中,将常用逻辑进行抽象,逐渐形成面向对象的思想. 你在理解面向对象之前,肯定听说过面向过程的编码方式,(顺序,分支,循环是三种基本控制结构),函数或者方法是其主要特征, 其实函数或者方法也是抽象,将常用逻辑进行抽取,实现了数据和结构的分离, 比如一个计算器函数, 运算规则定义在函数体内,多变的数据作为参数传递进去, 这就是一种封装,封装了逻辑,剥离了数据, 谁调用函数,谁就负责传递数据作为参数来使用函数,实现了函数体的复用. 同样的道理,面向对象的编程思想,也是复用,不过相比函数来说,这种封装又提升了一个级别, 对象中封装了不像函数仅仅封装一种逻辑,而是封装了多个逻辑(每一个逻辑体我们称之为成员方法),此外还封装了数据(成员属性/成员变量),这样的对象都是通过一个模板创造出来的,这个模板叫做类, 类是固定的, 通过给类的构造函数传递不同参数, 于是我们创建出不同的对象, 这样复用了类这个东东.

以上是面向对象封装的特性,封装,目的之一就实现了抽象,从而也实现了复用(函数,类都是如此);其实封装对于面向对象来说,还保护了对象实例的成员属性不被外界任意修改.

继承

面向对象还有一个继承的特点,在我看来,继承的目的还是复用,"懒惰"是一种美德,通过继承父类,我们就可以直接使用父类的成员属性和成员方法,作为子类是比父类进化更超前的一个群体,只需要有自己更厉害的更独特的成员方法就可以了,于是,作为程序员,省略掉很多时间去写重复的东西.

多态

多态的本质,还是"懒惰"的程序员用于省事,将所有的指代都用一个统一的称呼来实现,这统一的称呼笼统的泛指了一大类对象,这样做的目的在于,如果面对多变的需求,某一个类的实例不能满足当下需求,我们在变化具体实现类的时候,不同去修改所有的称呼.举个栗子,你去餐厅吃饭, 今天接待你的是小W,明天接待你的是小L,后天不一定是谁,所以,省事的做法是你不用管他(她)是谁,只管尊敬的称呼ta为服务员,就可以让服务员来帮你完成点餐,上菜,结账这些在餐厅的所有事情.

面向对象编程思想并不高深,无非是为了省事和"懒惰"所采取的一种代码策略,多体会来龙去脉,学习知识无比快.

相关文章

  • 类与对象(1) - Class、Object

    面向对象编程思想 Java开发是利用 面向对象 的思想实现 面向过程 的开发。 面向对象编程(OOP:Object...

  • 面向对象基础

    面向对象编程包括: 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的编程实现(OOP) 面向对象思想...

  • js高级 第一章

    JS面向对象编程 一、什么是面向对象思想(编程思想角度)? 现有的两种程序思想:面向过程和面向对象 1.面向过程...

  • 何为面向接口编程

    面向接口编程不与面向对象编程同级,而是附属于面向对象编程思想,是面向对象编程思想的精髓之一。 定义 在系统分析和架...

  • python面向对象1

    编程思想 编程思想:面向过程编程(穷人思想)、函数式编程、面向对象编程(富豪) 面向过程编程: 算法和逻辑 函数式...

  • 懒惰的程序员之面向对象编程思想

    有句话说: 程序员都是"懒惰"的! 小马哥无比认同,因为懒惰,所以我们思进取,把复杂的事情研究透彻,然后简单干,用...

  • python-day14

    一、面向对象编程 编程思想:1.面向对象编程 --> 算法,逻辑2.函数式编程 --> 函数3.面向对象编程 ...

  • JavaScript 面向对象入门

    面向对象的概念 1、概念: 从编程思想角度理解:面向过程的编程思想,关注解决问题的步骤;面向对象的编程思想,关注...

  • JavaScript学习笔记(一)

    Javascript面向对象 1. 面向对象编程介绍 1.1 两大编程思想 面向过程 & 面向对象 1.2 面向过...

  • 2017-08-14

    面向对象编程用对象的思想去写代码,就是面向对象编程-面向过程-面向对象面向对象编程的特点1.抽象 抽取一样的东西...

网友评论

      本文标题:懒惰的程序员之面向对象编程思想

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