华山

四句话让你成为编程高手

发布时间:2020/12/1 1:19:52   点击数:

如今,互联网+的时代,互联网可以+一切的事务,IT技术融入了各行各业,不仅IT行业需要程序员,传统行业也需要懂得编程的员工。

但是,正是由于各行各业对于程序员需求的爆发,使得程序员的薪资水涨船高,也使得社会上涌现了众多的IT技术培训机构,大量非计算机专业的学生纷纷改行做程序员,这也造成了程序员队伍的良莠不齐。

有没有捷径可以快速成为编程高手呢?

我们都知道程咬金著名的三板斧,虽然只会三招,但由于这三招非常厉害,再加上程咬金力大斧沉,这厉害的三招足以让程咬金成为中等偏上水平的高手。因此,我们可以得出这样的结论,要成为中等偏上的武林高手,只需要基本功(力大斧沉)+绝招(三板斧)即可。

学习编程与学习武功非常类似,要想成为超一流高手绝非一朝一夕之事,但要想超过一般水平的程序员,也是只需要基本功+绝招即可,程序员的基本功有很多,正所谓学无止境,基本功不扎实,再多的绝招也没有用,本文不展开介绍基本功,这个需要程序员不断地去深入学习和实践,本文只介绍绝招。

编程的绝招其实就是四句话,只需要具备一定的编程基础(基本功),再深入理解这四句话,就足以成为中等偏上水平的程序员。

这四句话是:

l一切皆对象;

l一切对象皆是其他对象的集合;

l一切皆观察者;

l一切皆MVC。

下面解释一下这四句话:

一、一切皆对象

这个很容易理解,很多编程教科书都介绍过。

面向对象的编程方法,是编程的一种思维方法,这种方法影响深远,它以类和对象为核心而展开,类是对象的定义,对象是类的实例。这种思想的基本原则是继承、封装与隐藏,类包括属性和方法,子类从父类继承,父类是子类的抽象,属性封装了内部数据的访问,方法封装了对外的接口,隐藏了实现的细节。

举个简单的例子:

杨树是木本植物,它从木本植物中继承,木本植物是杨树的抽象,也是其父类,木本植物是植物中的一种,它从植物中继承,植物是木本植物的抽象;植物能够进行光合作用,吸收光和二氧化碳,产生氧气,光合作用这个方法封装了光合作用的接口,隐藏了内部如何进行光合作用的实现;如果子类具有特定的功能,那么可以重新实现父类的接口。

我们看一个著名的公式:

程序=算法+数据

而对于类来讲,算法等同于类的方法,数据等同于类的属性,因此,程序就可以认为是一系列类与类对象之间的协同。

因此,对于编程来讲,可以说:

一切皆对象。

一切皆对象,目的是让程序员养成面向对象的思维习惯和思维方法。

二、一切对象皆是其他对象的集合

学习编程,不可能不学习数据结构和数据库,我们都知道,数据库是由一系列的数据表组成的,而表与表之间存在三种对应关系,即:一对一关系、一对多关系、多对多关系,而多对多关系可以简化为两个一对多关系。

数据库的表与程序设计的类有着天然的对应关系,只不过他们不是一一对应的,所以,通常情况下,在编程时,考虑数据结构设计的时候,一般都会同时考虑业务类框架的设计。

与表与表之间的关系类比,对象与对象之间的关系也分为一对一关系和一对多关系,只不过,通常,我们说对象与对象之间的关系是包含与被包含的关系。

有很多教科书、教师都会介绍聚合和组合的区别,并且刻意强调学生要学习并理解他们之间的区别。

我今天告诉你,根本就没有必要刻意去区分这两种关系,如果你真正理解,就去区分,不理解就不要去区分,我也不想浪费笔墨去介绍他们之间的区别,因为从代码实现和程序执行的逻辑上来看,根本就没有区别。你只需要记得,谨慎地去管理你的程序所使用的动态内存,谨慎地构造和析构对象就可以了。

举个例子:

一台汽车,包含一个发动机,一个底盘,四个轮胎,至于他们之间是聚合关系还是组合关系,其实不重要,重要的是知道他们之间是包含与被包含的关系就可以了;而不管是发动机、底盘还是轮胎,他们都是汽车零配件。

汽车作为一个整体,它提供了前进、后退、停止的方法,以前进为例,它封装了发动机驱动,连杆传动,轮胎转动等方法,也封装了转弯时左右轮胎转速需要不一致的差速控制逻辑,对于驾驶汽车来讲,只需要调用汽车前进的方法,根本就不必关心发动机还要转动,轮胎还要转动,转弯时轮胎速度还要不一样的这些细节,这些实现的具体细节都被汽车封装和隐藏了。除非修车的时候,否则,日常驾驶出行,我们甚至可以连汽车是怎么组成的都不必关心。

对象封装的核心原理就是封装子对象,隐藏子对象的控制逻辑,使得外部调用者的调用接口最简单。

这就是:

一切对象皆是其他对象的集合。

当然,你需要知道,集合必须有管理集合元素的方法,这些方法需要在集合类中予以实现,一般是在父类中实现通用的管理子类对象的方法。

三、一切皆观察者

观察者是设计模式的其中一种模式,也是最常用的模式之一,参考下图:

对象与对象之间需要协作,共同完成一项任务,而每个对象都有自己的运行状态,相互协作的对象,一定会关心协作对象的状态,根据协作对象的状态来调整自身的状态,做出反应,以便一起协同。

但是,通常情况下,我知道我自己关心谁,但并不清楚谁关心我,这就好像年轻人谈恋爱,我清楚地知道我自己暗恋谁,但并不清楚谁暗恋我自己;当我在课堂上打个喷嚏,拿出纸巾撸鼻涕,告诉全班同学,我感冒了。这时,不同的暗恋对象所表现出来的行为是不一样的:腼腆内向的可能什么都不作;直接一点的直接买了药,然后说,给吃药;还有的可能不想让别人知道,偷偷发条短信,多喝点白开水。诸如此类,等等,不一而足。

观察者模式,恰恰迎合了这种“暗恋”的小动作,你如果暗恋我,我提供了attach方法,你调用该方法,表示你

转载请注明:http://www.frapuluowangsi.com/hslygl/19738.html

------分隔线----------------------------

热点文章

  • 没有热点文章

推荐文章

  • 没有推荐文章