论坛首页 入门技术论坛

越做开发越觉得自己不懂什么是面向对象了

浏览 5669 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-08-09  
    为什么会出现面向对象的编程方法呢?她比面向过程好在哪里呢?

    不管是面向对象还是面向过程无非不是为了提供一种抽象来解决实际问题的。

    有人说是面向对象提供可复用,但是,复用分两种:1.代码级复用,这个可以忽略,完全不能称得上真正的复用;2.逻辑级的复用,这样面向对象的领域模型和提供服务的子系统复用和面向过程的模块化结构化复用,子服务复用有啥区别?

    有人说是可扩展性,说面向过程的修改要自上而下整一次甚至要颠覆之前。我觉得:对于结构化的面向过程代码,完全可以按模块修改,就好比面向对象的修改领域模型啊啥的。真正要到颠覆之前代码的程度,面向对象的代码也得颠覆,因为我们在分析问题到得出领域模型的抽象过程也只是按照当时的需求抽象相关的属性和行为啊....
   发表时间:2012-08-10  
可以看一下《面向对象式软件的构造》
0 请登录后投票
   发表时间:2012-08-10  
什么面向对象, 什么领域模型, 什么抽象, 什么多态...
对这些东西感念越来越模糊.

关于代码复用的问题:
肯定要经历 设计 -> 实现 -> 重构  -> 改善设计 -> .... 这个迭代的过程.
并且在这个过程中,  需要用测试代码保证代码行为的正确性.





0 请登录后投票
   发表时间:2012-08-10   最后修改:2012-08-11
witcheryne 写道
什么面向对象, 什么领域模型, 什么抽象, 什么多态...
对这些东西感念越来越模糊.

关于代码复用的问题:
肯定要经历 设计 -> 实现 -> 重构  -> 改善设计 -> .... 这个迭代的过程.
并且在这个过程中,  需要用测试代码保证代码行为的正确性.







面向过程的程序设计,是自顶向下,集中式开发,即从大问题分解为小问题 一层一层的解决问题,复用、可维护性、可扩展性比较差。

面向对象程序设计是一种方法学,以抽象数据类型为核心,程序应该由对象组成,出发点不是系统干什么,对什么对象进行干(如登录需要对用户进行做操作)(正好与面向过程设计方法反着)。

面向对象程序设计是自底向上,分散式开发,由对象组合而成,从而好复用、好扩展、好维护。

0 请登录后投票
   发表时间:2012-08-11  
jinnianshilongnian 写道
witcheryne 写道
什么面向对象, 什么领域模型, 什么抽象, 什么多态...
对这些东西感念越来越模糊.

关于代码复用的问题:
肯定要经历 设计 -> 实现 -> 重构  -> 改善设计 -> .... 这个迭代的过程.
并且在这个过程中,  需要用测试代码保证代码行为的正确性.







面向过程的程序设计,是自顶向下,集中式开发,即从大问题分解为小问题 一层一层的解决问题,复用、可维护性、可扩展性比较差。

面向对象程序设计是一种方法学,以抽象数据类型为核心,程序应该由对象组成,出发点不是系统干什么,对什么对象进行干(如登录需要对用户进行做操作)(正好与面向过程设计方法反着)。

面向对象程序设计是自底向上,分散式开发,由对象组合而成,从而好复用、好扩展、好维护。



对面向过程不太熟悉, 受教了
0 请登录后投票
   发表时间:2012-08-13  
jinnianshilongnian 写道
witcheryne 写道
什么面向对象, 什么领域模型, 什么抽象, 什么多态...
对这些东西感念越来越模糊.

关于代码复用的问题:
肯定要经历 设计 -> 实现 -> 重构  -> 改善设计 -> .... 这个迭代的过程.
并且在这个过程中,  需要用测试代码保证代码行为的正确性.







面向过程的程序设计,是自顶向下,集中式开发,即从大问题分解为小问题 一层一层的解决问题,复用、可维护性、可扩展性比较差。

面向对象程序设计是一种方法学,以抽象数据类型为核心,程序应该由对象组成,出发点不是系统干什么,对什么对象进行干(如登录需要对用户进行做操作)(正好与面向过程设计方法反着)。

面向对象程序设计是自底向上,分散式开发,由对象组合而成,从而好复用、好扩展、好维护。


确实,面向过程和面向对象时两种分析问题解决问题的方法论,分析问题时:面向对象分析的是问题本身,而面向过程是分析解决问题的步骤,虽然最后不管面向对象和面向过程的执行都是过程式的顺序执行。

可能是自己没有用过C写过稍微大点的程序,只是经常用java写出面向过程的代码,所以不大理解所谓的好复用,好扩展和好维护。不过倒是觉得用面向过程写出好的程序需要的基本功和经验更严格...
0 请登录后投票
   发表时间:2012-08-13  
面向对象、面向过程只不过是代码的组织方式,关键是理解这些组织代码的思想。现在很少人讨论这样的话题了。
0 请登录后投票
   发表时间:2012-08-13  
面向对象更符合人类的思维习惯,而这些思维习惯我们到了编码时往往忘得干干净净了。这么说吧,我们开发编码时有个要求是尽可能减少出错,如何做到?对比我们在生活中碰到一些要说又不太把握的话,是个傻X都会把话说的很抽象。目的是什么,就是减少出错的概率,听话的人怎么理解是他们的事情。所以编码是尽量进行抽象,怎么抽象是设计的问题了
0 请登录后投票
   发表时间:2012-08-13   最后修改:2012-08-13
记得一本书里大意是说,面向对象语言的出现,主要是由于图形化界面的革命,应势而生。所以说面向对象主要是在图形化界面编程起了很大的作用,让图形化开发更加简单,代码也更容易理解了。所以经常写后台的会迷惑。个人观点,供讨论。
0 请登录后投票
   发表时间:2012-08-13  
devroller2 写道
面向对象、面向过程只不过是代码的组织方式,关键是理解这些组织代码的思想。现在很少人讨论这样的话题了。

是,大多数讨论面向对象的帖子都追溯到04年左右...
每次看他们的帖子都觉得抓住了影子,却总觉得没有真正理解...

而且个人不大同意所谓面向对象跟符合人的思维习惯,我感觉把事情理顺的过程式思维倒更加符合人遇到问题分析问题的思维习惯...

呵呵,高手总说这东西只可意会不能言传,但我觉得真正的的概念是可以抽象出理论的,只不过每个人都有自己对面向对象的理解而不能有权威的真正见血的说法
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics