Golang 面向对象基本概念

优质
小牛编辑
143浏览
2023-12-01

面向对象思想

面向对象(Object Oriented,OO)是软件开发方法

面向对象是一种对现实世界抽象的理解,是计算机编程技术发展到一定阶段后的产物

Object Oriented Programming-OOP ——面向对象编程


面向对象和面向过程区别

  • 面向对象是相对面向过程而言
  • 面向对象和面向过程都是一种思想
  • 面向过程
    • 强调的是功能行为
    • 关注的是解决问题需要哪些步骤
  • 回想下前面我们完成一个需求的步骤:
    • 首先搞清楚我们要做什么
    • 然后分析怎么做
    • 最后我用代码体现
    • 一步一步去实现,而具体的每一步都需要我们去实现和操作
  • 在上面每一个具体步骤中我们都是参与者, 并且需要面对具体的每一个步骤和过程, 这就是面向过程最直接的体现

  • 面向对象
    • 将功能封装进对象,强调具备了功能的对象
    • 关注的是解决问题需要哪些对象
  • 当需求单一, 或者简单时, 我们一步一步去操作没问题, 并且效率也挺高。 可随着需求的更改, 功能的增加,
    发现需要面对每一个步骤非常麻烦, 这时就开始思索, 能不能把这些步骤和功能再进行封装,
    封装时根据不同的功能,进行不同的封装,功能类似的封装在一起。这样结构就清晰多了, 用的时候, 找到对应的类就可以了, 这就是面向对象思想

  • 示例
  • 买电脑
    • 面向过程
      • 了解电脑
      • 了解自己的需求
      • 对比参数
      • 去电脑城
      • 砍价,付钱
      • 买回电脑
      • 被坑
    • 面向对象
      • 找班长
      • 描述需求
      • 班长把电脑买回来

  • 吃饭
    • 面向过程
      • 去超市卖菜
      • 摘菜
      • 洗菜
      • 切菜
      • 炒菜
      • 盛菜
    • 面向对象
      • 去饭店
      • 点菜

  • 洗衣服
    • 面向过程
      • 脱衣服
      • 放进盆里
      • 放洗衣液
      • 加水
      • 放衣服
      • 搓一搓
      • 清一清
      • 拧一拧
      • 晒起来
    • 面向对象
      • 脱衣服
      • 打开洗衣机
      • 丢进去
      • 一键洗衣烘干
    • 终极面向对象
      • 买电脑/吃饭/洗衣服
      • 找个对象
  • 现实生活中我们是如何应用面相对象思想的
    • 包工头
    • 汽车坏了
    • 面试

面向对象的特点

  • 是一种符合人们思考习惯的思想
  • 可以将复杂的事情简单化
  • 将程序员从执行者转换成了指挥者
  • 完成需求时:
    • 先要去找具有所需的功能的对象来用
    • 如果该对象不存在,那么创建一个具有所需功能的对象
    • 这样简化开发并提高复用

类与对象的关系

面向对象的核心就是对象,那怎么创建对象?

现实生活中可以根据模板创建对象,编程语言也一样,也必须先有一个模板,在这个模板中说清楚将来创建出来的对象有哪些属性行为

Go 语言中的类相当于图纸,用来描述一类事物。也就是说要想创建对象必须先有类

Go 语言利用类来创建对象,对象是类的具体存在,因此面向对象解决问题应该是先考虑需要设计哪些类,再利用类创建多少个对象