麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Delphi > 正文

將面向對象的思想貫穿始終--談Delphi開發(第二篇)

2019-11-18 18:52:57
字體:
來源:轉載
供稿:網友

(接第一篇)

將面向對象的思想貫穿始終,這個題目好象有些大了。我剛才在這里說的,提到的,其實只是在編碼的時候,應當注意的一些小問題。所以’貫穿始終’這個用語,改為’牢記在心’可能更為貼切。

對于Delphi某些特性的一點意見:

不知各位注意到沒有,在Delphi的Form中放置的所有組件(包括控件),對于其他Form來說,都是可見的,準確地說,這些組件都是該Form的Public部分的內容。這樣的結果,一方面是好的,因為其靈活性,其他類可以方便的引用Form上的這些組件,設置它們的屬性,執行它們的方法,事件等等;但是另一方面它的缺陷也是顯而易見的,那就是導致了Form的封裝性的喪失。在我看來,放置于Form之上的這些組件,就使用者的本意而言,應當是作為該Form的私有屬性而存在的,對于其他類或其他Form本應該不可見。即使需要訪問它們,也應當通過由Form提供一系列的屬性方法來間接的訪問。

舉個例子,讓大家有些感性的認識:

PRocedure TForm1.Button1Click(Sender: TObject);

begin

  Form2.Edit1.Text := 'abc'; // <-- 這個句子的寫法,本人很不贊同。

end;

可能很多人寫這樣的代碼的時候腦子里還沒有封裝性的概念,可是你看了這篇文章,就再也不要干這樣的事了(改邪歸正吧你!)。在我看來TForm1就是TForm1,TForm2就是TForm2,它們都是為了實現某些特定的功能而存在的,所以它們提供給外界一些接口(一些屬性,方法,還有事件,事件說嚴格一點,也是屬性),來實現它們自己所承諾的功能。至于這些接口的具體實現,應當由它們自身來維護,外界沒有必要,也沒有辦法插手。這個思想,對應到實際應用中,也就是Form2.Edit1是否有必要被From1直接訪問的問題了。我本人比較傾向于下面的實現:

  //以下為Unit1中TForm1的部分內容

procedure TForm1.Button1Click(Sender: TObject);

begin

TForm2(FAnotherForm).EditText := 'abc'; // <-- 這個實現,體現了封裝的思想

end;

//以下為Unit2中TForm2的定義

type

  TForm2 = class(TForm)

    Edit1: TEdit;

  private

    function GetEditText: string;

    procedure SetEditText(const Value: string);

  public

    property EditText: string read GetEditText write SetEditText;

   // <-- 我的推薦用法;

  end;

……

function TForm2.GetEditText: string;

begin

  result := Edit1.Text;

end;

procedure TForm2.SetEditText(const Value: string);

begin

  if Value <> EditText then

    Edit1.Text := Value;

end;

這里的FAnotherForm是TForm1的一個私有屬性,它是指向TForm2的一個實例的指針(這個用法在第一篇里做了強調)。訪問TForm2的EditText 屬性,而不是魯莽的直接訪問TForm2的Edit1.Text,體現了一種思想,那就是分工協作的思想,那就是獨立自主的思想,也就是封裝性的思想。

(未完,待續)

更多文章


上一篇:用DELPHI編制Windows95下的鉤子函數

下一篇:將面向對象的思想貫穿始終--談Delphi開發(第一篇)

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

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 狠狠色噜噜狠狠狠米奇9999 | 欧美精品毛片 | 亚洲小视频网站 | 日韩欧美视频一区二区三区 | av色先锋 | 日本看片一区二区三区高清 | 91aa.app| 成人一级片毛片 | 羞羞羞网站| 中文字幕在线观看精品 | 亚洲爱爱网站 | 久久男人天堂 | 中国洗澡偷拍在线播放 | 久久久久久久久久久久久久av | 理论片中文字幕 | 黄色av.com | 久久久午夜电影 | 精品久久久久久久久久久久久 | 成人午夜a | 免费观看又色又爽又黄的崩锅 | 国产精品视频一区二区三区综合 | 日韩伦理电影免费观看 | 黄wwww| 亚洲精品tv久久久久久久久久 | 一区二区免费看 | 草b视频在线观看 | 一级免费看片 | av在线播放亚洲 | 中文字幕欧美一区二区三区 | 免费99热在线观看 | 国产1区在线 | 午夜精品成人一区二区 | 亚洲乱搞 | 精品国产一区二 | 日韩中字幕| 日韩精品中文字幕在线观看 | 视频一区二区三区在线播放 | 99在线免费观看视频 | 亚洲码无人客一区二区三区 | 天天艹综合| 成人福利免费在线观看 |