国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

個人觀點隨筆-RAD和面向對象

2019-11-18 18:42:47
字體:
來源:轉載
供稿:網友
個人觀點隨筆-RAD和面向對象
  網上經常有討論開發(fā)工具的優(yōu)劣性文章。仿佛結果一定是一派要壓倒另一派。特別是RAD與非RAD的爭論。如“VC和BCB哪個更好”、“VC vs Dephi”等等。
   有人曾經說做一個好的Win32程序員一定要懂得API。雖然Delphi、VB把API封裝了起來,簡化了編程工作,但也阻礙了成為高手的機會。極力倡導使用VC進行編程。我想之樣的人他一定是Win32的編程好手,是VC的熟練工種。但他一定對RAD的開發(fā)工具不甚了解,特別是Delphi。(VB暫且先不討論)。
   RAD的開發(fā)工具確實入門很簡單。拖拽幾個控件,寫幾個事件。一個小程序就做完了。似乎對這個程序是怎樣運行的不甚了解。確實造成了一大批人對BCB,Delphi的誤解。BCB真簡單。我想敢說這樣的話的人不是一個剛剛對BCB入門的人,就是一個絕頂的WIN32程序員,對VCL和API很精通的人。第二種人那就無話可說了,他真的有資格說簡單。第一種人BCB的VCL不但會方便你的開發(fā),而且他決不會成為你成為高手的機會。如果你精通Object Pascal那么VCL將成為你學習的絕好參考。
   我要強調的是要多多弄清內部機理,不要成為組件的砌磚奴隸。
   Nicrosoft的一篇文章寫得很好《把面向對象貫徹到底》。很多人用Delphi來做開發(fā)只是用到了它的組件提供的功能。很精通,精通什么呢,精通應用組件?,F成組件所有功能特性他都會??呻x了現成組件他什么也干不了。組件能做的就是他能力的極限。一旦用到相對低階的API他就束手無策了。認為開發(fā)工具不足正是報漏了開發(fā)人員自身的不足。抱怨Delphi不能做低階的事,正報漏了他本身這方面能力的欠缺。如果不是,他完全可以自己去開發(fā)、去擴展它。用慣了RAD開發(fā)工具不要被它華麗的外表所迷惑而不去探求更深的東西。我常常見到這樣寫代碼的程序員:
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    PRocedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.DFM}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
   Form1.Button1.Caption:='快速開發(fā)';
end;
 
end.
     畫線的的那行代碼是有嚴重的邏輯錯誤的,雖然編譯可以通過。Form1不過是Tform1類的一個實例而已。我們現在寫的是一個TForm1的類。這段代碼犯的錯誤就是以偏蓋全,以一個特例去描述一個類,這是典型的白馬非馬論。
最起碼的這句話應該這樣寫B(tài)utton1.Caption:='快速開發(fā)';而最好要寫成Self. Button1.Caption:='快速開發(fā)';這才不會以偏蓋全。
我們要做的事面向對象,而不是基于對象。
要你去寫對一個文件的操作(如DBF文件)你會如何寫呢?
定義一堆結構,寫一堆函數。然后去挨個調用這些函數對文件進行操作。
還是定義一個DBF文件的類,然后把對它的操作都封裝起來,只留下需要調用的函數(如讀、寫)作為公有。
或許第一種方法的代碼要遠遠的少于第二種。但第二種有著第一種方法不可比擬的優(yōu)勢。
1.  思路清晰,更符合人的邏輯思維。而第一種方法更像一盤散沙。
2.  安全可靠,我只把共有函數讓你調用,而其他的都由內部封裝好了,你根本看不見,也不需要考慮它是如何實現的。
3.  方便維護,哪個地方錯了我只要把這個類的相關部分作以下改動即可,不會造成混亂。
好處不止這些。
我的意思是說要多多運用面向對象的方法,不要成為基于對象的工人。

上一篇:自動編號的存儲過程

下一篇:讀寫CMOS內存

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 高青县| 通河县| 务川| 明光市| 湖州市| 化隆| 罗源县| 大同市| 香港| 深州市| 威远县| 太谷县| 志丹县| 宾阳县| 昌平区| 黑水县| 无锡市| 简阳市| 达孜县| 金寨县| 百色市| 盈江县| 三原县| 黄梅县| 苏尼特右旗| 岑溪市| 罗山县| 临泽县| 天柱县| 原平市| 金山区| 潼关县| 阜城县| 阳江市| 定兴县| 武邑县| 巴彦淖尔市| 新宁县| 西城区| 吐鲁番市| 沁阳市|