面向对象思维

今天和大家聊一聊面向对象的思维,之前看到过一篇文章,说如果你没有一年的开发经验,就不要跟我聊数据结构,如果你没有两年的开发经验,就不要跟我聊面向对象思维。
  “对象(Object)”一词,早在十九世纪就有现象学大师胡塞尔提出并定义。对象是世界中的物体在人脑中的映象,是人的意识之所以为意识的反映,是做为一种概念而存在的先念的东西,它还包括了人的意愿。举例说明吧。当我们认识到一种新的物体,它叫树,于是在我们的意识当中就形成了树的概念。这个概念会一直存在于我们的思维当中,并不会因为这棵树被砍掉而消失。这个概念就是现实世界当中的物体在我们意识当中的映象。我们对它还可以有我们自己的意愿,虽然我们并不需要付诸实现——只要在你的脑中想着把这棵树砍掉做成桌子、凳子等——我们就把它叫做意向。于是,对象就是客观世界中物体在人脑中的映象及人的意向。只要这个对象存在我们的思维意识当中,我们就可以籍此判断同类的东西。譬如,当我们看到另外一棵树是,并不会因为所见的第一棵树不在了失去了供参照的模板而不认识这棵树了。当我们接触某些新事物时,我们的意识就会为这些事物确立一个对象。当然这个过程是怎么形成的,那就不是我们所能讨论的问题了。上面所说的对象研究的是一般意义上的问题,因而它可以外推到一切事物。
  我们经常所说的“对象”,一般指的是解决信息领域内所遇到问题的方法。特别是应用软件技术来决问题的方法。如我们经常碰到的面向对象的编程(Object-Oriented Programming)、面向对象的分析(Object-Oriented Analysis)、面向对象的设计(Object-Oriented Design)等。应用前面所介绍的关于对象的概念,可以对这些问题做进一步的分析。在面对较复杂的系统,我们可以将它作为一个对象来进行分析。一个系统(解决某个问题的全套解决方案)作为一个对象,可以由多个部分组成。
  实际开发中,ios都是大多使用mvc的开发模式,而view与controller的混合使得控制器的代码十分的繁重,为了开发的速度,索性直接在控制器里面搭建界面,如果软件版本迭代,需求不断地改变,会发现在控制器里面代码量巨大,其实很多代码都是重复的,有的代码根本就是没有用处的。


面向对象思维_第1张图片
87FF413390BAFE17891473FEA0512B1E.jpg
面向对象思维_第2张图片
9D511B121EF0F052F616F43F2BB24EDE.jpg

  这是昨天写的界面,这两个界面很简单的说一下,这是一个控制器控制的两个view,一个tableview 一个collectionView。控制器只负责网络情求,下拉刷新数据,和view之间数据传值,根据seg在这两个view之间进行切换,view向控制器方向用代理进行传值(用block也行),tableviewcell 和collectionviewcell各自处理自己的界面模型赋值,各自独立,不相互影响,大大降低了耦合性。这只是一个面向对象思维的很简单应用。
  在搞软件开发时,编码不是最重要的。分析、设计才是最重要的。也许当我们接受了一些更先进的思想之后,会更加理解这一点了。希望我们中国的软件开发人员能应用面向对象的思想开发出具有国际竞争力的优秀软件。

你可能感兴趣的:(面向对象思维)