a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁(yè) > 編程 > Delphi > 正文

將面向?qū)ο蟮乃枷胴灤┦冀K--談Delphi開發(fā)(第二篇)

2019-11-18 18:52:57
字體:
供稿:網(wǎng)友

(接第一篇)

將面向?qū)ο蟮乃枷胴灤┦冀K,這個(gè)題目好象有些大了。我剛才在這里說的,提到的,其實(shí)只是在編碼的時(shí)候,應(yīng)當(dāng)注意的一些小問題。所以’貫穿始終’這個(gè)用語,改為’牢記在心’可能更為貼切。

對(duì)于Delphi某些特性的一點(diǎn)意見:

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

舉個(gè)例子,讓大家有些感性的認(rèn)識(shí):

PRocedure TForm1.Button1Click(Sender: TObject);

begin

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

end;

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

  //以下為Unit1中TForm1的部分內(nèi)容

procedure TForm1.Button1Click(Sender: TObject);

begin

TForm2(FAnotherForm).EditText := 'abc'; // <-- 這個(gè)實(shí)現(xiàn),體現(xiàn)了封裝的思想

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的一個(gè)私有屬性,它是指向TForm2的一個(gè)實(shí)例的指針(這個(gè)用法在第一篇里做了強(qiáng)調(diào))。訪問TForm2的EditText 屬性,而不是魯莽的直接訪問TForm2的Edit1.Text,體現(xiàn)了一種思想,那就是分工協(xié)作的思想,那就是獨(dú)立自主的思想,也就是封裝性的思想。

(未完,待續(xù))

更多文章


上一篇:用DELPHI編制Windows95下的鉤子函數(shù)

下一篇:將面向?qū)ο蟮乃枷胴灤┦冀K--談Delphi開發(fā)(第一篇)

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點(diǎn)

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 男人天堂视频网 | 一区二区视频 | 精品中文字幕一区二区三区 | 精品乱码久久久 | 国产精品视频免费观看 | 韩日视频在线观看 | 人人精品 | 亚洲视频免费网站 | 久久久www | 成人在线免费观看 | 国产高清在线观看 | 亚洲精品久久视频 | 国产免费av一区二区三区 | 久久r免费视频 | 好色视频在线观看 | 黄色免费在线播放 | 国产91在线观看 | 日韩中文字幕 | 国产精品一区二区在线播放 | 久久69 | 在线国产欧美 | 色资源 | 日本久久久久久 | a中文在线视频 | 国产成人精品视频 | 国产成人综合一区二区三区 | 久久精精品 | 直接看av的网站 | 97人人插 | 日韩一二三区视频 | 精品亚洲永久免费精品 | 久久久久国 | 国产精品成人一区二区 | 国产精品久久精品 | 亚洲视频在线一区二区 | 久久性色 | 99视频精品 | 欧美亚洲午夜 | 国产九九九 | 91免费在线看 | 亚洲精品乱码久久久久久国产主播 |