【设计模式之美4】当我们谈论面向对象时都谈些什么

什么是面向对象编程和面向对象编程语言

面向对象编程的缩写是OOP即Object Oriented Programming。对应的面向对象编程语言的缩写是OOPL 即Object Oriented Programming Language.
面向对象有两个非常重要,非常基础的概念,那就是类(class)和对象(object)。面向对象编程的概念第一次被使用是在SmallTalk这种编程语言中,SmallTalk也被认为是第一个真正意义上的面向对象编程语言。
如果不按照严格的定义来说,目前绝大多数的编程语言都是面向对象的编程语,如java/c++/go/python/c#/等等。

那到底什么是面向对象编程?什么语言才算是真正的面向对象编程语言?

  • 面向对象编程是一种编程范式或者编程风格。它以类或者对象为组织代码的基本单元,并将封装/继承/多态/抽象四个特性作为代码设计和实现的基石。
  • 面向对象编程语言是支持类或对象的语法机制,并由现成的语法机制,能方便的实现面向对象编程的四大特性(封装/继承/抽象/多态)的编程语言

理解面向对象编程和面向对象编程语言最重要的一点就是理解面现象对象编程的四大特性:封装/抽象/继承/多态。也有另外一种说法面向对象只有三大特性:封装/继承/多态。而有时候四大特性又被称为四大基石/四大概念/四大基础/四大支柱等。

如何判定某种编程语言是否是面向对象编程语言

前面提到,如果不按照严格的定义,大多数编程语言可以称为面向对象的编程语言。如果按照严格的面向对象编程语言的定义,有些语言是并不是严格意义上的面向对象编程语言,例如javascript,它不支持继承和封装的特性。但是从某种意义上看它又可以被称为是面向对象的编程语言。
个人认为,只要某种编程语言支持类或者对象的语法概念,并且以此作为住组织代码的基本单元,那就可hi被粗略的认为是面向对象编程语言。至于是否由现成的机制,是否完全 的支持了面向对象的四大特性,是否对四大特性有所取舍可以不作为判定的标准。

什么是面向对象分析和面向对象设计

面向对象分析的英文缩写是OOA,Object Oriented Analysis。面向对象设计的英文缩写是OOD,即Object Oriented Design。OOA,OOD和OOP连起来整好是面向对象分析,设计和编程,也就是软件开发要经历的三个阶段。
分析和设计这两个阶段最终的产出是类的设计,包括程序被分解为哪些类,每个类由哪些属性和方法,类与类之间如何交互等。他们比其他的分析和设计更加具体,更加落地,更加贴近编码,更能顺利的过度到面向对象编程环节。面向对象分析就是要搞清楚做什么,面向对象设计就是要搞清楚怎么做,面向对象编程就是将分析和设计的结果翻译成代码的过程。

总结
  1. 什么是面向对象编程?
    面向对象编程是一种编程范式或者编程风格。它以类或者对象为组织代码的基本单元,并将封装/继承/多态/抽象四个特性作为代码设计和实现的基石。
  2. 什么是面向对象编程语言
    面向对象编程语言是支持类或对象的语法机制,并由现成的语法机制,能方便的实现面向对象编程的四大特性(封装/继承/抽象/多态)的编程语言。
  3. 如何判定某一个编程语言是否是面向对象的编程语言
    如果不按照严格的定义,大多数编程语言可以称为面向对象的编程语言。如果按照严格的面向对象编程语言的定义,有些语言是并不是严格意义上的面向对象编程语言。
  4. 面向对象编程和面向对象编程语言有何关系
    面向对象编程一般使用面向对象编程语言来完成,但是不使用面向对象编程语言照样可以完成面向对象编程,反过来,即使我们使用面向对象编程语言,写出来的代码也不一定是面向对象编程风格的,也由可能是面向过程编程风格的。
  5. 什么是面向对象分析和面向对象设计
    面向对象分析就是要搞清楚做什么,面向对象设计就是要搞清楚怎么做。两个阶段的产出包括类的设计,包括程序被分解为哪些类,每个类由哪些属性和方法,类与类之间如何交互等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值