面向对象你必须知道的几件事!

什么是设计模式?

简而言之就是有一些工作已经形成了模式,不必重复劳动,也就是说车的轮子不用你去制造。

在谈设计模式之前我先给大家推荐一本书,是学习设计模式的圣经,感兴趣的小伙伴可以找来研读

面向对象你必须知道的几件事!

这本书我也是看了好多遍,每一遍都有新的体会,其实最核心的东西就是封面上的两个字:复用。相信真正懂面向对象的小伙伴会理解我说的话,这种思想正是我们软件行业成熟化的标志,其实任何一个成熟行业我想亦是如此。

接着我想谈一谈程序猿到底需要什么样的思维?

面向对象你必须知道的几件事!

从程序猿的角度来讲,程序猿的工作无非是将现实社会的需求转换为计算机识别的语言,这样的话程序猿无非是面对两个层面:现实的抽象和底层的技术。现实抽象的思维帮助我们如何更有效率的将现实的需求进行模块划分、功能整合;而底层思维是我们程序猿的基本功,很多行业大牛也都是从这里起步的。其实程序猿只要打磨好这两项能力,大牛也就在向你挥手了,具体一些思想如下:

底层思维:向下,如何把握机器底层从微观理解对象构造

  • 语言构造
  • 编译转换
  • 内存模型
  • 运行时机制

抽象思维:向上,如何将我们的现实世界抽象为程序代码

  • 面向对象
  • 组件封装
  • 设计模式
  • 结构模式

说一说到底什么是面向对象?

有人说面向对象就是程序能看到的都是“对象”,我想这个说法没错,但是并不深刻。真正的面向对象同样需要向上和向下两部分。

向下:面向对象三大机制

  • 封装:隐藏内部实现
  • 继承:复用现有代码
  • 多态:改写对象行为

向上:掌握什么是“好的面向对象设计”,有抽象思维。

也就是说,仅仅掌握了封装、继承、多态并不能说明你的程序就是面向对象设计,还要有抽象思维,懂得如何用好这三大机制才能完全掌握面向对象。可以将面向对象理解为剑术,你仅仅会挥、刺等这些基本操作一定不叫剑术,还需要灵活的运用这些基本功才能叫做剑术。现在你懂什么叫做面向对象了吗?

软件设计的固有复杂性

软件设计复杂的根本原因是什么?那就是变化,变化来源于很多,比如客户的需求、技术平台、市场环境等的变化。这些变化导致了软件设计的复杂性,不像盖楼,楼建成后不会加一层,但是对于软件设计来说,这是常有的事情。

那么如何解决这样的复杂性呢?无非就是分解和抽象。分解就是将复杂问题分解为多个小问题,例如C语言。但是仅有分解是不够的,还需要抽象,抽象就是忽略事物的非本质,着重于事物的本质特征。

以上的思想就是我们作为一个软件从业人员或者以后会从业的人员应该知道的一些想法,我从宏观的角度告诉了大家为什么要学习设计模式,设计模式和面向对象有什么关系。我想任何一个程序猿都要掌握这两种思维或者叫能力,希望大家以后能节节高升。

面向对象你必须知道的几件事!

文章是纯手打的,创作不易,大家多多支持。

以后的文章我会详细讲解每一个设计模式,对于文章观点有意见的朋友可以私信我。喜欢的朋友可以关注一下,防止以后迷路。


分享到:


相關文章: