一点个人意见:期待Delphi所应具有的以下几个基本特征(欢迎讨论,都有分啊) (100分)

  • 主题发起人 主题发起人 韧峰
  • 开始时间 开始时间
同意 韧峰 对 Tuti 同志的批评教育

我所说的话并不是信口开河,虽然我对于面向对象理解得并不像某些大师那样深刻,
但是,我觉得在设计大型系统的类库和系统时,对象之间的接口需要付出更多的努力

lichaohui 如是说: 我们对现实不满,才引起我们对现实的改造活动

设计模式的作者从建筑模式中得到灵感,但是他忘了,建筑的模块之间是静止关系,
实际的对象之间的关系要复杂的多,往往还有信息的传递和沟通,如果要模拟现实
来研究设计模式的话,我建议选用人体,毕竟建筑是人造出来的,人体是上帝造出来的

未来的电脑技术发展的方向是人工智能,电脑获得真正的智能,对象之间和人之间一样
进行通信和合作,对象之间的耦合会是非常松散的,但合作会是非常有效的
 
继承,接口,多态是实现面向对象的主要技术,我想,我们应该有更好的方法

最根本的是,技术是为人服务的,纯粹的研究技术并不是大多数人的工作
大多数人只是利用面向对象带来的好处,他们用不着也没必要去体会面向对象的精髓
这并不代表他们就不能谈论面向对象,以及更好用的东西
 
//第一、关于自定义运算符或者运算符的重载问题。
我曾经也这样想过,后来,我发现这不是一个好主意,这会影响 Delphi 的优美特性,
当我们现在看到一段 Delphi 代码的时候我能明确它干了什么:
C := A + B;
但是同样的一段 C++ 代码,我们谁也不敢保证它到底干了什么。
当然,这时候,有人会用函数来反驳,然而,函数毕竟不是运算符。
 
to beta:
运算符为什么不是函数呢?
 
对于运算符重载,在很多语言的发展过程中都被提出来过,c++的创始人在《c++语言演化》
中也讲过这一特征的利弊,后来的语言java、c#中都没有实现这个特征,至于delphi,在它的
发展过程中,也曾经打算实现运算符重载、函数模板等特征,不过后来这个发展方向被否决了。

至于搂主提出的另外两个问题,实在有些幼稚~
 
真是怪事,这个帖子我结了几次了,怎么还是没有成功??
 
你要发分才能结的...
 
每次我都发了分,就是结不了。人多了,发一次分挺麻烦的。
 
哀莫大于心死!
开发语言何其多也?每种都有其特性和发挥最佳效能的领域!
对一种开发语言要求这过、要求那过、正是有点令人好笑!
数据运算、科学计算就用你的 Fortran 不就挺好!
系统级编程、底层访问、图形图像、网络通信、硬件交互那就 C/C++ 好了!(Delphi、VB也都行,只是多包几层、多绕几圈的问题)
应用系统的开发那就随便了!
再者,有些朋友说得好,多看一下这些语言的发展史、成长历程不就清楚了!
 
呵呵,cpj7406::你的言论是老生常谈,陈词滥调,有什么新鲜的??
假大空水也会说啊。
“如果你想做物理学家你就做牛顿和爱因斯坦嘛,你想搞IT呢就做比尔盖茨,
想做数学家呢,你就做高斯嘛,想做哲学家呢就做马克思嘛”——你真是站着说话
不要疼!!!
很简单问题:我问你了,你给我解决:我现在要用克里金插值法对已堆复数数据
进行插值,并且把其模和相位用等值线的形式表示出来,请问比用那种语言实现?

每一种语言都是不断发展的,为什么要不断发展呢??因为在应用中出现了新情况
和新问题。不要说语言是无足轻重的,我想你还没到说这句话的资格:我就不相信
你已经精通了世界上所有的语言或者你只用机器马从裸机开始编程。你的这一套言论
听多了很让人烦。

Fortran语言为什么要不断的修订版本?为什么要从非结构化到结构化再到面向对象?
你说语言不重要那为什么现在要采用面向对象的编程方式??你不是高级语言的设计者,
低级语言的操作者,你是高级语言的使用者,因此,语言在任何时候都是重要的。

最后,请你给我解答一个问题:为什么会不断有新的语言出现??难道这所有的语言都
是针对的不同的问题吗?

 
楼主的脾气比水平大
 
不是我的脾气大,是因为我实在受不了那种似是而非自以为找到了“金钥匙”而实际上
什么问题都解决不了的空谈。
 
操作符重载的问题放下不谈,因为这个东西没有定论的.
但看了半天也没搞懂你的源代码模块化是个啥意思,自己注意代码的组织不就可以了?难道什么
事情都要编辑器替你完成?况且这只是你一个人的需求,自己写个程序实现一下类似source code
formater 的功能不就完了?

第三个问题就更搞笑了,你的思路完全体现了"中国特色",private,published,protected等等
关键字约束实际上是一种法律,没有人可以凌驾在法律之上.你的表述实际上就是"我能访问我想
访问的任何数据,并且有能力控制别人对该数据的访问".虽然代码是你写的,类是你设计的,但并
不意味着你就可以为所欲为.在使用这些类(代码)的时候,你同其他人没什么区别,大家都应该在
同一个规则下.如果你有能力改变数据访问的权限(比如private-->public),那么你为什么能要求
别人不能做这种改变?如果别人也能做这种改变,能就能访问到你的数据,你怎么保证你的类的封装
特性?-----你的第三个问题有一个解决方案:你写的代码很聪明,它们能认识你这个人.
 
前面两个没有什么好说的,因为你从来没有进行过以模块块为单位的程序设计。

第三个问题,我对Tuti的回答如下,你看看你能不能为所欲为:

我的意思是可选特征(Optional)是一个与Private等平级的特征(我使用“特征”而非“属性”来描述“Attribute”,因为Delphi中“属性”应为
“Property”专用)。你原有的声明为Private/Protected/Public/Published特征的方法和数据
是无法更改的。也就是说我并不更改Delphi原有的封装特性,如果你不是用“Optional”。只有
对那些需要这样做的数据进行可选操作。即类的声明为:
Ta=Class(Tb)
Private
...
Protected
...
Public
...
Published
...
Optional
...
End;
只有声明在Optional中方法和字段才有可能具有可选特征的功能。因此这并不违背OO的原则。编译的时候
确实存在一些问题,但我相信这是肯定可以实现的。因为最开始动态数组的实现也为很多人不理解,但现在
不也是很正常的事情吗?我的一个构想是:Optional区所有的方法和字段都是可“访问”的,但是,当访问
时如果其中的某个方法其可选特征量为私有的,则出现统一处理的异常:“该可选特征量为私有的,目前不
能访问。”从而避免误操作而引起程序的崩溃,同时也清楚异常的原因,便于程序的维护和检查。

 
各位大虾:佩服啊!看君一页贴,胜读十年书啊!
 

Similar threads

回复
0
查看
863
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部