今天偶看一例:
 type
  TStringGridEx = class(TStringGrid);procedure TForm1.Button1Click(Sender: TObject);
begin
  if TStringGridEx(StringGrid1).RowCount > 5 then
    TStringGridEx(StringGrid1).DeleteRow(5);
end;
---------------------------------------------------------
delphi的确是面向对象的编程开发工具,不过他的面向对象机制好像有点复杂,说白了就是有点乱。
关于这个例子网上多的是,他们的评论不再多说,无非是讨论此种面向对象类型的优劣,但是在这我想请教大家,无论是好是坏。
能给程序员带来多少好处、多少坏处呢?
疑问一、
  面向对象技术出现已经40年了吧(1967年挪威计算中心的Kisten Nygaard和Ole Johan Dahl开发了Simula67语言,它提供了比子程序更高一级的抽象和封装,引入了数据抽象和类的概念,它被认为是第一个面向对象语言。)可是用这种技术的人还不是很多,有很多人还是沿用VB那套面向过程的编程机制
面向对象走进我们的生活,却始终走不到我们身边。
疑问二、
到底有多少人真正的熟悉面向对象技术,不得而知阿
疑问三、
怎样才能学以致用呢?老板和客户不懂编程,他们在一边催着交活,我们校程序员能再仔细的仔细的分析系统设计、类视图,简直就成了累赘阿!
可怕的现状。

解决方案 »

  1.   

    个人的一点看法:  "delphi的确是面向对象的编程开发工具,不过他的面向对象机制好像有点复杂,说白了就是有点乱。 "
    ----------------------------------------------------------
        当你真正理解了delphi中的面向对象机制的时候,再回头来看看。  "面向对象走进我们的生活,却始终走不到我们身边。"
    -----------------------------------------------------------
        其实,面向对象一直都在你身边,只是你并没有觉察,或者根本不知道什么是对象,如何利用对象。
      "怎样才能学以致用呢?  "
    -----------------------------------------------------------
        先理解对象的再说吧。然后,不用说,你也知道如何去使用了。  "老板和客户不懂编程,他们在一边催着交活,我们校程序员能再仔细的仔细的分析系统设计、类视图,简直就成了累赘阿!"
    -----------------------------------------------------------
         如果老板和客户懂得编程,那么你就失业了。 :)
      

  2.   

    看设计模式,学习别人好的设计。
    如果你认为 OOA,OOD,OOP是垃圾,你也不可能学好OO
      

  3.   

    你举的VCL的部分其实是很难做到OOP的。因为Borland/CodeGear已经做好的框架拿来直接用就好了。一般是做业务模型的时候才需要OOP设计,做一些抽象。但是Delphi没有合适的ORM框架,不是很容易利用OOP来设计数据库应用,因此Delphi的纯OOP特性还不是很足。对于你的第三个疑问,我不是十分赞同。OOP并不是和老板客户交流用的东西,只是我们设计和编码的工具。很多时候我都不是一开始就有OO模型,而是编码过程中慢慢重构出来的。
      

  4.   

    这个问题有意思。呵呵~
    事实上,看了设计模式让我也钻了牛角尖,我现在拿到需求就会上来画UML图,
    一上来就被领导骂得狗血淋头,我们领导比较大嗓门,呵呵同意lextm的观点,没有合适的ORM框架,当然,我对ORM的了解也不多,大概是数据库和对象的映射吧
    好像即便是VS2005也没有成熟的ORM框架吧,开源的倒是不少。
    Java可能会用得多些。完全面向对象是要付出性能上的代价的,你不可能完全在WindowsAPI上面向对象,难道不是么。
    对于程序员来说解决问题才是重要的,而不是使用哪项技术更牛X
    反正Java不是完全面向对象的,他还有基本类型呢
    C#算不算呢~
    无所谓啦,Delphi用这很好,
    即便是楼主举的例子,我认为也没有背离面向对象的思想啊。很经典的OCP原则
      

  5.   

    其实OO是你每天都在用的
    从VCL、MFC到.net framework哪个不是面向对象?谁要再说从来没遇到过抽象、封装、继承、多态,他大概是从火星回来的
      

  6.   

    OO是思想,不是实现
    思想没到位,最“纯粹”的OO工具,一样写出面向过程的东西函数不等于面向过程,别一见到函数就说不是OO
      

  7.   

    刚刚看了回复,突然感觉自己真的不是很了解对象,而且对“对面向对象机制”也开始模糊了。
    不过还是受益匪浅阿,呵呵!
    同意Lextm的观点:“很多时候我都不是一开始就有OO模型,而是编码过程中慢慢重构出来的。”
    其实好像大部分的人都是这样啊!
    etomahawk 分析的有道理啊!相当深刻,面相对象的道路还真是漫长啊.....
    最后还是谢谢各位给小弟解惑阿!哈哈
      

  8.   

    etomahawk 汗 JAME 顶一个~ 
      

  9.   

    建议从umlchina学习用例驱动的面向对象开发过程模型,很有用